Não é possível anexar à matriz usando o nome do campo de string [$] ao executar a atualização nos campos da matriz
Estou tentando realizar uma atualização mongodb em cada campo em uma matriz de registros.
Um exemplo de esquema está abaixo:
{
"_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
}
]
}
Até agora, consegui realizar atualizações únicas como esta:
db.mycollection.update({"uid":"ABCDEF","rows.uid":1}, {$set:{"rows.$.status_id":1}},false,false)
No entanto, estou com dificuldades para executar uma atualização que atualizará todos os registros da matriz para umstatus_id
de 1 (por exemplo).
Abaixo está como eu imagino que deveria funcionar:
db.mycollection.update({"uid":"ABCDEF"}, {$set:{"rows.$.status_id":1}},false,true)
No entanto, recebo o erro:
não é possível anexar ao array usando o nome do campo de string [$]
Eu tentei por um bom tempo sem sorte. Quaisquer ponteiros?