我看不出使用它的区别:

update({"name" : "nick"}, {"$set" : {"age" : 50}})

不使用;
update({"name" : "nick"}, {"age" : 50})

documentation中的示例。我不清楚。
感谢您的评论,但是如果我使用{"$set" : {"array_field" : [{'f' : 'v'}] }}它将{'f' : 'v'}添加到数组中,而不是用[{'f' : 'v'}]替换数组,那么为什么$set不用新的替换数组呢?

最佳答案

update({"name" : "nick"}, {"age" : 50})仅用{"age" : 50}替换整个对象。
运行上述更新后运行find({"name" : "nick" })将不会返回“找不到文档”错误。
使用$set只允许更新原始对象的“age”参数。
卡尔·塞金的《a a》对替换和设置的区别有很好的解释。

关于mongodb - $ set在MongoDB中做了什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14526409/

10-10 18:28
查看更多