我有MongoDB 2.2.2和这个集合:
> db.my_collection.find({_id: ObjectId('51b0f9b74cfe6e668c4fd8f4')}).pretty() { "_id" : ObjectId("51b0f9b74cfe6e668c4fd8f4"), "campaigns" : [ { "cs_strategy_name" : "HighestPosition", "name" : "DefaultCampaign", "campaign_id" : 0, "_syskey" : "default", "en_send_warn" : "Yes", "minus_keywords" : [ ], "login" : "test", "fio" : "test test" } ], "domain" : "defsite.ru", "login" : "test", "name" : "test", "password" : "", "site_id" : 2, "status" : "new", "surname" : "test"
您能帮我找到适合的更新命令:db.my_collection.campaigns.minus_keywords
吗?
它是另一个数组中的数组。
非常感谢!
答案 0 :(得分:0)
为了将项添加到mongoDB对象中的数组中,可以使用$ addToSet命令,例如:
db.inventory.update(
{ _id: ObjectId('51b0f9b74cfe6e668c4fd8f4') },
{ $addToSet: { campaigns.minus_keywords: "accessories" } }
)
上面的命令($ addToSet)只会添加值iff它不存在。
如果我想添加(dublicate value)怎么办? - 你可以改用$ push命令。
有关$ addToSet的更多信息: http://docs.mongodb.org/v2.2/reference/operator/update/addToSet/ http://docs.mongodb.org/v2.2/reference/operator/update/push/