gpt4 book ai didi

mongodb - 对数组字段执行更新时,无法使用字符串字段名称 [$] 追加到数组

转载 作者:IT老高 更新时间:2023-10-28 13:27:49 27 4
gpt4 key购买 nike

rows我正在尝试对记录数组中的每个字段执行 mongodb 更新。

示例架构如下:

{
"_id" : ObjectId("508710f16dc636ec07000022"),
"summary" : "",
"uid" : "ABCDEF",
"username" : "bigcheese",
"name" : "Name of this document",
"status_id" : 0,
"rows" : [
{
"score" : 12,
"status_id" : 0,
"uid" : 1
},
{
"score" : 51,
"status_id" : 0,
"uid" : 2
}
]
}

到目前为止,我已经能够像这样执行单个更新:

db.mycollection.update({"uid":"ABCDEF","rows.uid":1}, {$set:{"rows.$.status_id":1}},false,false)

但是,我正在努力解决如何执行将所有数组记录更新为 status_id 为 1 的更新(例如)。

以下是我想象的应该如何工作:

db.mycollection.update({"uid":"ABCDEF"}, {$set:{"rows.$.status_id":1}},false,true)

但是我得到了错误:

can't append to array using string field name [$]

我已经尝试了很长时间,但没有运气。有什么指点吗?

最佳答案

您不能对您正在寻找的数组元素进行那种“通配符”更新。我认为你能做的最好的就是同时设置每个元素的 status_id 值,如下所示:

db.mycollection.update(
{"uid":"ABCDEF"},
{$set:{
"rows.0.status_id":1,
"rows.1.status_id":1
}}, false, true);

关于mongodb - 对数组字段执行更新时,无法使用字符串字段名称 [$] 追加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040344/

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