如何使用CouchDB / Node.js中的Cradle删除键值对?

时间:2013-03-12 23:10:19

标签: javascript node.js couchdb cradle

我一直在使用couchDB客户端Cradle工作。但是,我有一个充满键值对的文档,我正在尝试删除那里的特定行。

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

2 个答案:

答案 0 :(得分:2)

在CouchDB中,不支持部分文档更新(偶尔会讨论对此的支持,但由于没有可接受的方法来修补JSON,它永远不会很远),所以你必须更新包含副本的整个文档,其中删除了不需要的键/值对。

答案 1 :(得分:0)

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

而不是制作一个包含键值对列表的文档,而只是创建一个包含一个字段的文档,并为其值插入键值对的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端缺乏支持的响应。希望那里的其他人发现这种解决方法很有价值。