Как использовать upsert и $ addToSet вместе? - PullRequest
0 голосов
/ 06 июля 2018

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

{
    name: "app1",
    theArray: [...unique string elements...]
}

Я попытался сделать upsert, используя запрос ниже, но он каким-то образом создает массив в массиве, если документ не существует. Если я использую $push, когда документ не существует, то массив создается нормально. Однако мне нужно использовать $addToSet для поддержания уникальности элемента массива.

Текущий запрос:

collection1.upsert({
            name: "app1",
        }, {
            $addToSet: {
                theArray: data // data is an array of ip addresses eg. ["1.1.1", "2.2.2.2"] which is not unique 
            }
        });

Выполнение вышеуказанного запроса, когда в базе данных нет существующего документа, создает:

{
    name: "app-1",
    theArray: [
        //another array that contains the actual data.
    ]
}

Есть ли способ, которым я могу получить это поведение с помощью одного запроса?

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