開頭的密鑰的對象我想保存對我的文檔所做的更改。最簡單的方法是存儲對文檔所做的實際更改。我的意思是什麼:
var changes = {
$set: {
text: 'Some text.'
}
}
db.posts.update({
_id: _id
}, changes)
db.changes.insert({
postid: _id,
changes: changes
})
但是我得到的錯誤(有很好的理由):
Error: key $set must not start with '$'
什麼是存儲變化的最簡單的方法?
或者我正在接近錯誤的問題,你有一個更好的解決方案。我希望用戶能夠看到人們對任何帖子所做的更改日誌,或者實際上任何事情。我不會爲每次改變都做一個功能。編輯文本只是對文檔進行更改的多種方法之一。
我必須爲每種類型的$修正,只有頂級的,或者這樣做什麼? –
@JonathanOng沒有典型的審計日誌只有這三個操作符,你只是推入新的值和舊的值,諸如'$ inc'等東西就會以SET的形式出現。您需要考慮子文檔是否應以審覈日誌中的對象形式顯示,或者您是否想單獨審覈其中的每個字段。 – Sammaye
我決定把它保存爲'JSON.stringify(更改)'。簡單! –