Стадия $merge записывает результат конвейера агрегации в указанную коллекцию. Обычно она используется как финальная стадия в конвейере и обеспечивает гибкий контроль над тем, как результаты интегрируются в целевую коллекцию.
$mergeПример стадии $merge:
{ $merge: {
into: "targetCollection",
on: "_id",
whenMatched: "merge",
whenNotMatched: "insert"
} }
$merge от $out| Возможность | $merge | $out |
|---|---|---|
| Сохраняет существующие данные | Да | Нет |
| Заменяет всю коллекцию | Нет | Да |
| Поддерживает частичные обновления | Да | Нет |
Ключевое отличие в том, что $out полностью заменяет целевую коллекцию результатами конвейера, а $merge аккуратно встраивает результаты в существующие документы.
$mergeСтадия $merge может быть использована в любой позиции внутри pipeline агрегации, не только как финальная стадия, потому что она умно обрабатывает промежуточные результаты.
Новый — ещё не проверен сообществом
Вы