如何替换此记录中的third_id(只需要更新一个文档)?
> db.collection.find( {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "first_id": ObjectId("4edf056800126757c000000f")}) { "second_id" : ObjectId("4f355e430012671d77000ec0"), "third_id" : ObjectId("4edf056800126757c000000f"), "note" : "blah-blah"}
喜欢这个吗?
db.collection.update( { {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "third_id" : ObjectId("5edf056800126757c000000f")}, , true )
教程说: db.collection.update(criteria,objNew,upsert,multi)
参数:
标准 - 选择要更新的记录的查询;
objNew - 操作对象的更新对象或$运算符(例如$ inc)
upsert - 如果这应该是“upsert”操作;也就是说,如果记录不存在, 插入一个。 Upsert仅插入单个文档。
multi - 表示是否应更新所有匹配条件的文档而不是仅更新一个。对于下面的$运算符非常有用。
答案 0 :(得分:1)
由于您只想更新单个文档并且您不想尝试进行upsert,并且您不想替换整个文档而只是替换一个字段,您可以这样做:
db.collection.update( { {"_id" : ObjectId("4f90cf0cd4bea011930001a3"),
{ $set : {"third_id" : ObjectId("5edf056800126757c000000f") } } )