gpt4 book ai didi

arrays - mongoid 更新数组中的元素

转载 作者:可可西里 更新时间:2023-11-01 10:33:00 25 4
gpt4 key购买 nike

我正在将 mongoid 3.1 与 Ruby 1.9.3 结合使用,并且我正在尝试更新数组中的值。我可以在 mongodb 的 CLI 中成功执行以下命令,但似乎无法为 mongoid 找到合适的解决方案/翻译。

user.update( { activities: { $elemMatch: { uuid: "1111111-xxxx-xxxx" }}}, { $set: { 'activities.$.submitted': true }})

对于上下文,文档看起来像:

{
"_id" : ....,
"user_name" : "bob",
"activities: [
{
uuid: "1111111-xxxx-xxxx",
submitted: true,
},
{
uuid: "222222-xxxx-xxxx",
submitted: false,
},
{
uuid: "333333-xxxx-xxxx",
submitted: false,
}
]
}

目标是根据 uuid 值将 submitted 更改为 true。据我所知,mongoid 中的所有“更新”解决方案都只处理文档根部的属性,不能为 $ 位置运算符提供选项。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

看来我在 github 问题讨论中找到了答案。

我的解决方案是:

User.elem_match(activities: { type: "redemption" }).elem_match(activities: { uuid: uuid }).update("$set" => {"activities.$.submitted" => true })

关于arrays - mongoid 更新数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346287/

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