我试图确定以下用例在MongoDB 3.4中是否可行:我有一个包含文档的集合,该文档的架构与此类似:
{
"_id": ObjectId("..."),
"data": {
"fname": "John",
"lname": "Doe"
},
"history": []
}
该data
字段用于保存实体的当前状态,而history
数组则用于保存实体的最新版本(考虑最大文档大小和用于查询目的)。
当从应用程序逻辑发出更新操作时,我想$push
将该data
字段放入history
数组并将其替换为实体的新状态。我在MongoDB文档上找不到任何有关此的任何信息,我在SO
将一个全新的对象推入数组而不是“移动”现有字段的值的过程中发现的每个问题。是否可以在这样的$push
操作中引用文档字段?
db.collection.update({"_id": "1234"}, {"$set": {"data": {"data-value"}}}, {"$push": {"history": {"history-value"}})
您可以这样编写,它将自动将值推入历史记录,并将数据更改为当前状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句