1

假设我将这个对象保存在 MongoDB 中:

{ "hello" : "goodbye", "_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "world" };

我愿意

db.table.save({"_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "changed value"});

它会更新现有记录吗?(测试的值将被“更改”,其余的将保持不变),或者创建一个新的?

谢谢!

4

1 回答 1

1

是的。如果您传递 _id 并使用“保存”,它将更新它。

> db.test.insert({ "hello" : "goodbye", "_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "world" });
> db.test.save({"_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "changed value"});
> db.test.find();
{ "_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "changed value" }

对不起,错过了你问题的第二部分。你正在寻找这个:

db.test.update({_id: ObjectId("4f90c9106aee6e21b4e55c65")}, {$set:{test:"changed value"}});
于 2012-04-20T03:43:54.660 回答