0

如何替换这条记录中的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 - 指示是否应该更新所有符合条件的文档,而不仅仅是一个。可以与下面的 $ 运算符一起使用。

4

1 回答 1

2

由于您只想更新单个文档并且您不想进行 upsert 并且您不想替换整个文档而只想替换一个字段,您可以执行以下操作:

db.collection.update( { {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), 
                      { $set : {"third_id" : ObjectId("5edf056800126757c000000f") } } )
于 2012-04-21T05:49:29.430 回答