我有一个mongo问题.我想知道是否有办法在mongo控制台命令中执行以下操作,而不是多个查找和更新调用.
{ "_id" : ObjectId("50b429ba0e27b508d854483e"),"array" : [ { "id" : "1","letter" : "a" },{ "id" : "2","letter" : "b" } ],"tester" : "tom" }
我想用这个新的数组项更新对象
{ "id": "2","letter": "c" }
我使用它,addToSet是有限的,如果它已经存在,它将不会将项插入数组,但它不会根据标识符更新项.在这种情况下,我真的想根据id更新此条目.
db.soup.update({ "tester": "tom" },{ $addToSet: { "array": { "id": "2","letter": "c" } } });
这给了我:
{ "_id" : ObjectId("50b429ba0e27b508d854483e"),"letter" : "b" },"letter" : "c" } ],"tester" : "tom" }
当我真正想要的是:
{ "_id" : ObjectId("50b429ba0e27b508d854483e"),"tester" : "tom" }