我想保存对文档所做的更改.最简单的方法是存储对文档所做的实际更改.我的意思是说:
var changes = {
$set: {
text: 'Some text.'
}
}
db.posts.update({
_id: _id
}, changes)
db.changes.insert({
postid: _id,
changes: changes
})
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误(有充分的理由):
Error: key $set must not start with '$'
Run Code Online (Sandbox Code Playgroud)
存储更改的最简单方法是什么?
或许我正在接近问题并且你有一个更好的解决方案.我希望用户能够看到人们对任何帖子或事实上的任何变化的日志.我不打算每次改变都有功能.编辑文本只是对文档进行更改的众多方法之一.
小智 5
另一个有许多保留的选项是将更改日志存储为json字符串.当然,内容不会轻易搜索,但您可以保留将原始数据存储为字符串并在检索时解码json的简单性.如果您只是存储更改日志,则此方法可能有效.
db.changes.insert({postid:_id,changes:JSON.stringify(changes)})