我遇到了以下问题。我有一个填充了文档的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代码来循环文档并更改它们,但我相信(希望)这可以在查询中完成。
任何人都知道如何做到这一点?
感谢您的帮助!
答案 0 :(得分:1)
您需要做的就是
db.collection.update(
{id : {$in : [your list of ids]}},
{$set : {
theme : [{
"name" : "Outside",
"id" : "6"
}]
}},
{multi : true}
)