$ pull из вложенного массива - PullRequest
       4

$ pull из вложенного массива

0 голосов
/ 04 февраля 2019

У меня следующая структура документа.Я пытаюсь удалить компоненты из массива компонентов с помощью $ pull.Я не могу понять, как выбрать «мачту» или «commsbox» из следующего документа.

{
    "_id" : ObjectId("23456yujbvfdfg"),
    "d": 1234567,
    "components" : [
        [
            "mast",
            {
                "foo":"bar"
            }
        ],
        [
            "commsbox",
            {
                "BLARN": "bAAA"
            }
        ]
    ]
}

Я пробовал

db.sites.update({components: {$exists: true}, {$pull: { components.mast: {$exists: true} } }  }).pretty();

, но не могу правильно выбрать компонент.

1 Ответ

0 голосов
/ 05 февраля 2019

Вам необходимо использовать оператор $ для $pull из вложенного массива

db.sites.update(
  { "components": { "$exists": true }},
  { "$pull": { "components.$": "mast" }}
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...