Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 使用位置$operator的简单更新不起作用_Mongodb - Fatal编程技术网

Mongodb 使用位置$operator的简单更新不起作用

Mongodb 使用位置$operator的简单更新不起作用,mongodb,Mongodb,我只是从Mongo开始,在文档之后,当我应用相同的技术时,我似乎无法更新嵌套数组中的值 这是我的文件: { "_id" : ObjectId("56d2cf8ee2b075667d4f0545"), "address" : { "building" : "522", "coord" : [ -73.95171, 40.767461 ], "street" : "East

我只是从Mongo开始,在文档之后,当我应用相同的技术时,我似乎无法更新嵌套数组中的值

这是我的文件:

{
    "_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。非常感谢:)