Jor*_*dan 2 mongodb meteor mongodb-query
我有一个像这样的集合结构:
albums: {
2oBkjqYFwf3vrgDj4: {
_id: "2oBkjqYFwf3vrgDj4",
titles: [
{
titleText: "i am an album"
},
{
titleText: "this is my other title"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想做类似下面的事情来更新titleText等于某事的地方,然后改变它:
db.albums.update({"_id": "2oBkjqYFwf3vrgDj4", "titles": {$elemMatch: {"titleText": "i am an album"}}},
{$set: {
"titles.titleText": "i am not an album"
}
)
Run Code Online (Sandbox Code Playgroud)
我知道我可以做一个foreach,但这似乎是浪费了很多资源,因为我计划有一个索引titles.titleText.
有什么我想念的,或者有没有一个简单的方法来做到这一点?我正在使用Meteor,但如果有一种方法可以在MongoDB中执行此操作,我认为它不应该改变任何逻辑.
感谢大家!
结果我的问题是链接的转贴
这个问题可以通过MongoDB来解决,
db.albums.update({
"_id": "2oBkjqYFwf3vrgDj4",
"titles.titleText": "i am an album"
},
{$set:
{"titles.$.titleText": "i am not an album"}
}
)
Run Code Online (Sandbox Code Playgroud)
当发布上一个问题时,minimongo不支持位置运算符.截至目前,出于安全原因,不能从客户端代码使用mongo选择器.
必须从服务器上的Meteor.method()调用上述方法.