我一直在与couchDB 客户端Cradle 合作很多。但是,我有一个充满键值对的文档,我试图删除其中的特定行。
在文档中,我找不到不包括删除整个文档或使用空值更新它的删除方法。谁能指出我正确的方向?我觉得这很可能是很多人遇到的一个非常简单的问题。
我一直在与couchDB 客户端Cradle 合作很多。但是,我有一个充满键值对的文档,我试图删除其中的特定行。
在文档中,我找不到不包括删除整个文档或使用空值更新它的删除方法。谁能指出我正确的方向?我觉得这很可能是很多人遇到的一个非常简单的问题。
在 CouchDB 中,不支持部分文档更新(对此的支持每隔一段时间就会讨论一次,但由于没有公认的修补 JSON 的方法,所以它永远不会走得太远),所以你必须更新整个文档删除不需要的键/值对的副本。
好的,我找到了一个可以解决这个问题的解决方案。
与其制作一个包含键值对列表的文档,不如制作一个包含一个字段的文档,并为它的值插入键值对的 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 端缺乏支持的强烈回应。希望那里的其他人发现这种解决方法很有价值。