【问题标题】:How do I delete a key-value pair using Cradle in CouchDB/Node.js?如何在 CouchDB/Node.js 中使用 Cradle 删除键值对?
【发布时间】:2013-03-12 23:10:18
【问题描述】:

我一直在使用 couchDB 客户端 Cradle 进行大量工作。但是,我有一个包含键值对的文档,我正在尝试删除其中的特定行。

documentation, 中,我找不到不包括删除整个文档或使用空值更新它的删除方法。谁能指出我正确的方向?我觉得这很可能是很多人遇到的一个非常简单的问题。

【问题讨论】:

  • 有人可以帮忙吗?我是否必须获取、更改并一一重新上传每个字段?

标签: javascript node.js couchdb cradle


【解决方案1】:

在 CouchDB 中,不支持部分文档更新(对此的支持不时讨论,但由于没有公认的修补 JSON 的方法,它永远不会走得太远),所以你必须更新整个文档,其中包含删除不需要的键/值对的副本。

【讨论】:

  • 啊,太可怕了。但是,感谢您简洁明了的回答!现在开始编写所有代码......大声笑
【解决方案2】:

好的,我找到了一个可以解决这个问题的解决方案。

与其创建一个包含键值对列表的文档,不如只创建一个包含一个字段的文档,并为其值插入键值对的 JSON。这样,您可以提取值、删除字段并将其保存回原始值,而无需重新创建整个文档。

这是一个使用 Cradle 的示例:

db.get('document', function (err, doc) {
  var inside_key_values = doc.key_value_pair;

  delete inside_key_values[key_to_delete];

  db.merge("document", {
        key_value_pair: inside_key_values
      }, function (err, res) {
        console.log('New key value pairs saved')
    });

});

这一切都是基于@djc 对 couchDB 端缺乏支持的强烈回应。希望其他人发现这种解决方法很有价值。

【讨论】:

  • 嗯,我认为您没有按照我的意思理解我的回答,或者我可能误解了您的问题。也许 Cradle API 有点混淆实际操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多