MongoDB - обновить свойство во всех вложенных документах, но это объект вместо массива - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно обновить свойство "status" во всех документах и ​​вложенных документах коллекции.

Обычно я могу использовать '$set':{'sessions.$[].status': 'offline'}, но sessions - это объект поддокумента с ассоциированными ключами (не обычный массив), и я получаю ошибку WriteError: Cannot apply array updates to non-array element sessions.

Вот структура:

{
    "_id" : ObjectId("5ce71390c083a8585b222f22"),
    "login" : "barbara@sourcelab.com.br",
    "name" : "Barbara Oliveira",
    "sessions" : {
        "fb595f76639f4401c6de3f48c4e00e2d" : {
            "fingerprint" : "4c86f67a71667f4ffed0d11f63049427",
            "status" : "online",
        },
        "5e1c902f3c6658f94c8bc1c18456c1ea" : {
            "fingerprint" : "0dbd69eff5a6172946e9b09b80abb083",
            "status" : "online",
        }
    },
    "status" : "online"
}

Как я могу это сделать? Спасибо!

...