0

我有点陷入以下问题。我有一个充满文档的 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 必须这样做。

文档应如下所示:(应删除主题中的所有其他字段,只有一个新字段“Outside”)

 {
   "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 代码来遍历文档并更改它们,但我相信(希望)这可以在查询中完成。

有人知道我该怎么做吗?

谢谢你的帮助!

4

1 回答 1

1

你需要做的就是

db.collection.update(
  {id : {$in : [your list of ids]}},
  {$set : {
    theme : [{
       "name" : "Outside",
       "id" : "6"
    }]
  }},
  {multi : true}
)
于 2013-11-12T09:31:06.737 回答