MongoDB查询从Id列表中将字段插入到文档中

时间:2013-11-12 09:25:13

标签: mongodb insert

我遇到了以下问题。我有一个填充了文档的MongoDB,这些文档(我有一个Id的列表)我需要插入一个字段。

我有这个文件:

 {
   "id" : 3639,
   "type" : "P",
   "createdate" : "2011-10-19T11:45:14+0200",
   "name_creator" : "",
   "latitude" : "50.887",
   "longitude" : "9.14999",
   "themes" : [{
       "name" : "Fun",
       "id" : "4"
        }, {
       "name" : "Kids",
       "id" : "5"
   }]
}

我需要一个查询,可以将主题字段插入到文档中,当前主题字段不必是更新,只需要1个新的。我有超过300个ID,必须这样做。

该文件应如下所示: (主题中的所有其他字段都应该删除,只有一个新的'外部')

 {
   "id" : 3639,
   "type" : "P",
   "createdate" : "2011-10-19T11:45:14+0200",
   "name_creator" : "",
   "latitude" : "50.887",
   "longitude" : "9.14999",
   "themes" : [{
       "name" : "Outside",
       "id" : "6"
        }]
}

我通常会编写一些Java代码来循环文档并更改它们,但我相信(希望)这可以在查询中完成。

任何人都知道如何做到这一点?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要做的就是

db.collection.update(
  {id : {$in : [your list of ids]}},
  {$set : {
    theme : [{
       "name" : "Outside",
       "id" : "6"
    }]
  }},
  {multi : true}
)