MongoDB Query: Обновить или pu sh объект в массиве объекта - PullRequest
0 голосов
/ 13 апреля 2020

Допустим, у меня есть следующий объект в коллекции регионов:

{
    "_id": "5e873652b8e8132380343984",
    "region": "Europe",
    "countries": [
        {
            "id": 1,
            "name": "Italy"
        },
        {
            "id": 2,
            "name": "Spain"
        }
    ]
}

Теперь я хочу обновить указанную c страну в массиве стран на основе идентификатора, если идентификатор не существует, Я хочу пу sh новую страну.

У меня есть следующий запрос, который прекрасно работает и обновляет указанную c страну:

Region.findOneAndUpdate(
    { _id: someId, "countries.id": country.id },
    { $set: { [".countries.$"]: country } },
    { new: true }
);

Но если страна не существует в объекте стран, это не пу sh страна.

1 Ответ

0 голосов
/ 13 апреля 2020

в поле опций вы можете попробовать это:

{ new: true, upsert: true}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...