假设我将此对象保存在MongoDB中:
{ "hello" : "goodbye", "_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "world" };
我做了
db.table.save({"_id" : ObjectId("4f90c9106aee6e21b4e55c65"), "test" : "changed value"});
它会更新现有记录吗? (测试的值将被“更改”,其余的将保持不变),或者创建一个新值?
谢谢!
答案 0 :(得分:1)
是。如果您传递_id并使用“save”,它将更新它。
> 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"}});