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?

questionAnswers(1)

yourAnswerToTheQuestion