9

我正在尝试批量更新一些 mongo 文档。

我正在使用查询

db.articles.update(
    { 
         'categories.id': ObjectId("51cd5272222wb6zs464fa4d9"), 
         'source.importer': 'pa'
    }, 
    { 
         $set : 
             { 
                 'source.expires-at': ISODate("2014-01-01T08:39:45Z") 
             } 
    }
)

此查询不会更新source.expires-at字段,但是语句的 where 部分可以正常工作。

文档结构是

{
   "_id": ObjectId("5211dc100000044707000015"),
   "categories": {
     "0": {
       "id": ObjectId("51cd5272222wb6zs464fa4d9")
    } 
  },
   "source": {
     "importer": "pa",
     "expires-at": ISODate("2013-09-18T08:49:32.0Z") 
  }
}
4

1 回答 1

17

试试这个:

db.articles.update({ 'categories.id': ObjectId("51cd5272222wb6zs464fa4d9"), 'source.importer': 'pa'}, { $set : { 'source.expires-at': ISODate("2014-01-01T08:39:45Z") } }, {multi: true})

您将需要传递额外的选项参数 {multi: true};

看看这个https://education.10gen.com/courses/10gen/M101JS/2013_August/courseware/CRUD/Multi-update/

于 2013-08-29T09:02:02.747 回答