Nie można dodawać do tablicy przy użyciu nazwy pola łańcuchowego [$] podczas wykonywania aktualizacji na polach tablicy
rows Próbuję wykonać aktualizację mongodb na każdym polu w tablicy rekordów.
Przykładowy schemat znajduje się poniżej:
{
"_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
}
]
}
Do tej pory byłem w stanie wykonać pojedyncze aktualizacje, takie jak ta:
db.mycollection.update({"uid":"ABCDEF","rows.uid":1}, {$set:{"rows.$.status_id":1}},false,false)
Jednak staram się, jak wykonać aktualizację, która zaktualizuje wszystkie rekordy tablicowe dostatus_id
1 (na przykład).
Poniżej przedstawiam, jak powinno to działać:
db.mycollection.update({"uid":"ABCDEF"}, {$set:{"rows.$.status_id":1}},false,true)
Dostaję jednak błąd:
nie można dodać do tablicy za pomocą nazwy pola ciągów [$]
Próbowałem od dłuższego czasu bez powodzenia. Jakieś wskazówki?