В MongoDB для осуществления множественного поиска с заменой используется метод updateMany()
.
updateMany()
позволяет обновить несколько документов в коллекции, соответствующих определенному фильтру. Фильтр задается в первом параметре метода, а новые значения для замены - во втором параметре.
Пример использования метода updateMany()
для множественного поиска с заменой:
db.collection.updateMany( <filter>, <update>, { upsert: <boolean>, collation: <object>, arrayFilters: [ <filterdocument1>, ... ], bypassDocumentValidation: <boolean>, session: <session> } )
В примере ниже мы заменяем значение поля "status" на "completed" для всех документов, у которых поле "type" имеет значение "task":
db.collection.updateMany( { type: "task" }, { $set: { status: "completed" } } )
В результате выполнения данной команды все документы, у которых поле "type" равно "task", будут обновлены: значение поля "status" будет изменено на "completed".
Метод updateMany()
может принимать также и другие операторы как часть объекта $set
, например, $inc
, $mul
, $push
, $pull
и т. д., что позволяет более гибко изменять значения в документах при множественном поиске и замене.
Кроме того, метод updateMany()
поддерживает также опциональные параметры, которые можно передать в третьем аргументе. Например, upsert: true
позволяет создавать новые документы, если они не найдены по заданному фильтру. Parametr collation
может быть использован для задания правил сравнения при сортировке и поиске.
Выводящиеся значения при выполнении метода updateMany()
указывают на количество обновленных документов.
Таким образом, при помощи метода updateMany()
в MongoDB можно легко осуществить множественный поиск с заменой, обновляя значения полей во множестве документов, удовлетворяющих заданному фильтру.