morto
@morto
вечный ученик

Как добавить элементы из массива, которых нету в массиве в MongoDB?

Привет! Принимаю на вход массив строк и после хочу добавить каждый элемент в массив в документе, но только если элемента не существует в уже созданном массиве(в mongodb), т.е. если в документе уже есть массив со значениями 1,2,3,4, а я на вход подаю 2,3,5,6, то 5 и 6 должны добавиться. Пробовал добавлять через "$addToSet", но оно хорошо работает, только если массив в mongodb имеет типы наподобие int, string и т.д., а у меня там объекты и в итоге он забивает на то, что элемент уже есть в базе.

Пример входных данных ( должны добавиться только "another@mail.ru", "check@www.ru" ):
["a@mail.ru", "z@mail.ru", "adawdawd@mail", "another@mail.ru", "check@www.ru"]


Документ в MongoDB:
{
    "username": "testuser",
    "receiver_list": [{
        "_id": "ObjectID(\"619304749cf306ab40a95310\")",
        "receiver": "a@mail.ru"
    }, {
        "_id": "ObjectID(\"619304749cf306ab40a95311\")",
        "receiver": "z@mail.ru"
    }, {
        "_id": "ObjectID(\"619304749cf306ab40a95312\")",
        "receiver": "adawdawd@mail"
    }]
}
  • Вопрос задан
  • 22 просмотра
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov
Проект "Жизнь после смерти" - lifeafterdeath.ru
Проще объединить массив из БД и из запроса, а потом через new Set удалить повторы. Ну раз мы говорим о массиве строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы