gpt4 book ai didi

mongodb - 如何使用 $set 和 $elemMatch 之类的东西更新 MongoDB 文档数组中的单个子文档?

转载 作者:可可西里 更新时间:2023-11-01 09:59:12 26 4
gpt4 key购买 nike

我有一个像这样的集合结构:

albums: {
2oBkjqYFwf3vrgDj4: {
_id: "2oBkjqYFwf3vrgDj4",
titles: [
{
titleText: "i am an album"
},
{
titleText: "this is my other title"
}
]
}
}

我想做类似下面的事情来更新 titleText 等于某物的位置,然后更改它:

db.albums.update({"_id": "2oBkjqYFwf3vrgDj4", "titles": {$elemMatch: {"titleText": "i am an album"}}},
{$set: {
"titles.titleText": "i am not an album"
}
)

我知道我可以做一个 foreach,但这似乎浪费了很多资源,因为我计划在 titles.titleText 上建立索引。

我是否遗漏了什么,或者没有一种简单的方法可以做到这一点?我正在使用 Meteor,但我不认为它应该改变任何逻辑,如果有一种方法可以在 MongoDB 中执行此操作的话。

谢谢大家!

最佳答案

原来我的问题是link的转发

这个问题可以在 MongoDB 中解决,

db.albums.update({
"_id": "2oBkjqYFwf3vrgDj4",
"titles.titleText": "i am an album"
},
{$set:
{"titles.$.titleText": "i am not an album"}
}
)

当发布上一个问题时,位置运算符 wasn't supported by minimongo .对于 security reasons,目前无法从客户端代码使用 mongo 选择器.

上面的方法必须从服务器上的 Meteor.method() 调用。

关于mongodb - 如何使用 $set 和 $elemMatch 之类的东西更新 MongoDB 文档数组中的单个子文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com