#mongodb #mongodb-query #aggregation-framework
#mongodb #mongodb-запрос #агрегация-фреймворк
Вопрос:
Есть ли способ избежать удаления совпадающих документов при использовании операции «$ out» для той же коллекции, что и агрегированная коллекция?
db.collection.aggregate([
{
$group: {
_id: {
"foo": "$bar",
"bar": "$foo"
}
}
},
{
$out: "collection"
}])
этот запрос добавит результат в «коллекцию», но удалит совпадающие документы
, когда $out: "test"
добавит результат в «тестовую» коллекцию, сохраняя при этом совпадающие документы в «коллекции».
есть ли способ не удалять эти совпадающие документы, если выходная коллекция одинакова?
** $merge нельзя использовать, поскольку он не может выполнять запись в ту же коллекцию в версии 4.2
Комментарии:
1. Использовать
data: {$push: "$$ROOT"}
на групповом этапе.2. не сработало. тем не менее, соответствующие документы исчезли после операции
3. В Mongo 4.4 вы можете использовать stage
{ $unionWith: "collection" }
4. но тогда мне нужно будет запрашивать две коллекции вместо одной. я предпочитаю выполнять два запроса find и update, а затем find с помощью union