请分享您对部分更新 JSON 文档的经验。现在我将我的 JSON 文档存储在 MongoDB 中,如下所示:
{
id: ObjectId(507f191e810c19729de860ea),
title: 'Sterling Archer',
comments: [
{text: 'Comment text', tags: ['tag1', 'tag2', 'tag3']},
{text: 'Comment test', tags: ['tag2', 'tag5']}
]
}
我需要经常使用rfc6902规范更新我的文档。现在,我做的不是优化的方式,看起来如下(我在这个例子中使用 nodejs/express/mongoose 和 fast-json-patch 模块):
var jsonpatch = require('fast-json-patch');
app.patch('/document/:id', function (req, res, next) {
var document_id = req.params.id;
// req.body.patch: { "op": "add", "path": "/comments/2", "value": {text: 'Comment test3', tags: ['tag4']}" }
var patches = req.body.patch;
// find document
Document.findById(document_id, function (err, document) {
// Applying patches
jsonpatch.apply(document, patches);
// Update whole document in MongoDB
Document.update({_id: document_id}, document, function (err) {
return res.status(200).send();
});
});
});
由于 MongoDB 中有两个查询并替换整个文档,因此这不是修补文档的优化方法。所以我正在寻找优化的方法,并想尝试 RethinkDB 来完成这项任务。你能帮我检查一下使用 RethinkDB 的单个查询来检查原子文档更新的可能性吗?还是我应该寻找另一种方法来解决我的问题?
请分享您对部分更新 JSON 文档的经验。