Mongodb 查找和更新数组中的字段
我试图为update命令创建更好、更简单的标准。但我不知道如何才能获取所有有我搜索的任何活动的用户:Mongodb 查找和更新数组中的字段,mongodb,Mongodb,我试图为update命令创建更好、更简单的标准。但我不知道如何才能获取所有有我搜索的任何活动的用户: "data" : "a name", "campaigns" : [ { "id" : ObjectId("4ff3f07eacf4794426000154"), "name" : "test" }, { "id" : ObjectId("4ff3f07eacf4794426000154"), "name" :
"data" : "a name",
"campaigns" : [
{ "id" : ObjectId("4ff3f07eacf4794426000154"), "name" : "test" },
{ "id" : ObjectId("4ff3f07eacf4794426000154"), "name" : "fisk test2" }
]
我想做的是将“test”更新为“OS2012”
为此,我考虑使用类似的方法:
db.users.update({"campaigns.name": "test"}, {$set : {campaigns: {'test' : 'OS 2012'}}});
update语句的问题在于,它可能会删除用户阵列中的任何其他活动?我只想将“test”更新为“test2”,现在我能找到的最好方法是先使用$pull,然后使用$addToSet
有更好的办法吗?你能给我举个例子吗
谢谢你的建议和更好的智慧。了解。这个代码有效
db.users.update({'campaigns.name': 'test'},
{$set: {'campaigns.$.name': 'blah blah'}})
是否有收集活动?我认为它是
users
。你说的db.users.find({“活动.名称”:“测试”})是什么意思?
不起作用?对我有用。现在对我也有用,我想我一定是拼错了什么。实际上,campaign.name不是“test”,而是一个带有大写字母、空格等的字符串。:)好吧,那就把它从帖子上删除,不要让其他读者感到困惑:)我已经做了,我现在也接受了你的答案。再次感谢!该死,你跑得太快了。尽管如此,我还是马上解决了这个问题,这就是为什么我删除了我的评论。我这样做解决了这个问题:{$set:{'campaiments':{id:ObjectId(“123…”),name:'blah blah'}}}}})