我有一个MongoDB文档,我想更新数组中的特定字段,例如,经销商> dealer3>特定对象_id的值为1。我该如何更新该字段?
我的文档如下所示:
{
"_id" : "CARS1P01182016A0018789",
"name" : "Acme Company",
"dealers" : {
"dealer1" : {
"units" : 1200,
"n" : 50,
"rating" : 0.05
},
"dealer2" : {
"n" : 20,
"rating" : 0
},
"dealer3" : {
"n" : 100,
"rating" : 0
}
},
"status" : "active"
}
答案 0 :(得分:2)
使用dot notation指定更新中的嵌入式文档路径,以及 $set
运算符,如下所示:
db.collection.update(
{ "_id": "CARS1P01182016A0018789" },
{
"$set": {
"dealers.dealer3.rating": 1
}
}
)
答案 1 :(得分:0)
解决了它,只是输了一个错误,我正在做一个db.test.find而不是db.test.update。
db.test.update({_ id:" CARS1P01182016A0018789"},{$ set:{" dealers.dealer3.rating":1}});
答案 2 :(得分:0)
您可以使用常规$inc
运算符并使用点符号嵌套文档
db.collection.update (
{_id: 'CARS1P01182016A0018789'},
{'$inc':{"dealer.dealer3.rating" : 1} }
);
答案 3 :(得分:0)
使用$inc
运算符和点表示法更新字段,$inc
运算符将增加字段的值。 $set
只会将值设置为固定值。
db.collection.update({"_id": "CARS1P01182016A0018789"},{$inc:{"dealer.dealer3.rating":1}})