Есть ли способ вставить или обновить/заменить несколько документов в MongoDB одним запросом?Вставить или обновить многие документы в MongoDB
Предположим следующую коллекцию:
[
{_id: 1, text: "something"},
{_id: 4, text: "baz"}
]
Теперь я хотел бы добавить несколько документов, некоторые из которых, возможно, уже в коллекции. Если документы уже находятся в коллекции, я бы хотел их обновить или заменить. Например, я хотел бы включить следующие документы:
[
{_id:1, text: "something else"},
{_id:2, text: "foo"},
{_id:3, text: "bar"}
]
Запрос должен вставить документы с _id
2 и 3. Необходимо также обновить/заменить документ с _id
1. После процесса, коллекция должна выглядеть следующим образом:
[
{_id:1, text: "something else"},
{_id:2, text: "foo"},
{_id:3, text: "bar"},
{_id:4, text: "baz"}
]
Один из подходов может быть использование insertMany
:
db.collection.insertMany(
[ {...}, {...}, {...} ],
{
ordered: false,
}
)
If Дублировать es, этот запрос будет генерировать writeErrors
, содержащий массив объектов, содержащих индексы документов, которые не были вставлены. Я мог бы пройти через них и обновить их.
Но этот процесс громоздкий. Есть ли способ вставить или обновить/заменить многие документы в один вопрос?
Великого. Спасибо :) – str