我看不出使用它的区别:
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/