HGP*_*GPB 6 mongodb mongodb-update
rowsI我正在尝试对记录数组中的每个字段执行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
}
]
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经能够执行这样的单个更新:
db.mycollection.update({"uid":"ABCDEF","rows.uid":1}, {$set:{"rows.$.status_id":1}},false,false)
Run Code Online (Sandbox Code Playgroud)
但是,我正在努力如何执行更新,将所有数组记录更新status_id
为1(例如).
以下是我想象它应该如何工作:
db.mycollection.update({"uid":"ABCDEF"}, {$set:{"rows.$.status_id":1}},false,true)
Run Code Online (Sandbox Code Playgroud)
但是我得到错误:
无法使用字符串字段名称附加到数组[$]
我已经尝试了一段时间没有运气.有什么指针吗?
你无法对你正在寻找的数组元素进行那种"通配符"更新.我认为你能做的最好的事情是同时设置每个元素的status_id
值,如下所示:
db.mycollection.update(
{"uid":"ABCDEF"},
{$set:{
"rows.0.status_id":1,
"rows.1.status_id":1
}}, false, true);
Run Code Online (Sandbox Code Playgroud)