У меня есть массив данных, которые я хочу вставить в свою базу данных:
[
{
"id":"816307",
"email": "john.doe@test.com",
"firstName": "John",
"lastName": "Doe"
},
{
"id":"391650",
"email": "mary@williams",
"firstName": "Mary",
"lastName": "Williams"
},
{
"id":"183751",
"email": "paul.smith@test.com",
"firstName": "Paul",
"lastName": "Smith"
},
]
Я знаю, что могу использовать метод .create
из mon goose для вставки всех данных.
Однако в данных мне нужно иметь возможность сочетать новые и существующие значения. Например, если пользователь с идентификатором 816307
(Джон Доу) уже существует, но имеет другой адрес электронной почты, он должен обновить значение, и в то же время, если пользователь с идентификатором 391650
(Мэри Уильямс) не существует, он должен создать it.
Поле id
не может быть обновлено.
Похоже, что лучший метод для использования - это updateMany
и использование опции upsert
для вставки новых элементов в в то же время .updateMany () .
Но как сделать ссылку на id
? Я не могу использовать $eq
и жестко закодировать что-либо здесь, я хотел бы, чтобы документ автоматически нашел нужный элемент по его id
и обновил его, если он существует, в противном случае создайте его.