Mongodb 使用位置$operator的简单更新不起作用
我只是从Mongo开始,在文档之后,当我应用相同的技术时,我似乎无法更新嵌套数组中的值 这是我的文件:Mongodb 使用位置$operator的简单更新不起作用,mongodb,Mongodb,我只是从Mongo开始,在文档之后,当我应用相同的技术时,我似乎无法更新嵌套数组中的值 这是我的文件: { "_id" : ObjectId("56d2cf8ee2b075667d4f0545"), "address" : { "building" : "522", "coord" : [ -73.95171, 40.767461 ], "street" : "East
{
"_id" : ObjectId("56d2cf8ee2b075667d4f0545"),
"address" : {
"building" : "522",
"coord" : [
-73.95171,
40.767461
],
"street" : "East 74 Street",
"zipcode" : "10021"
},
"borough" : "Manhattan",
"cuisine" : "American ",
"grades" : [
{
"date" : ISODate("2014-09-02T00:00:00Z"),
"grade" : "A",
"score" : 12
},
{
"grade" : "B",
"score" : 16,
"date" : ISODate("2013-12-19T00:00:00Z")
},
{
"date" : ISODate("2013-05-28T00:00:00Z"),
"grade" : "A",
"score" : 9
},
{
"date" : ISODate("2012-12-07T00:00:00Z"),
"grade" : "A",
"score" : 13
},
{
"date" : ISODate("2012-03-29T00:00:00Z"),
"grade" : "A",
"score" : 11
}
],
"name" : "Glorious Food",
"restaurant_id" : "40361521"
}
这是我的问题:
db.restaurants.update(
{
_id: 'ObjectId("56d2cf8ee2b075667d4f0545")',
'grades.date': 'ISODate("2014-09-02T00:00:00Z")'
},
{
$set: { 'grades.$.score': 1 }
}
)
我肯定我错过了一些明显的东西。删除objectId和日期字段中的引号-请参见以下内容:
db.restaurants.update(
{
_id: ObjectId("56d2cf8ee2b075667d4f0545"),
"grades.date": ISODate("2014-09-02T00:00:00Z")
},
{
$set: { 'grades.$.score': 1 }
}
)
Doh。非常感谢:)