# #mongodb #mongodb-query #aggregate-functions #mgo
Вопрос:
Я знаю, что это должно быть просто, но, клянусь жизнью, я не могу создать правильный финальный этап в своем конвейере, чтобы это сработало. Вот документы, выводимые с этапа, который у меня есть в запросе mongo:
{ "_id" : ObjectId("61435ceb233ce0118c1d93ec") }
{ "_id" : ObjectId("61435cf29598d31c17f0d839") }
{ "_id" : ObjectId("611e5cf953396d78985d222f") }
{ "_id" : ObjectId("61435cf773b8b06c848af83e") }
{ "_id" : ObjectId("61435cfd7ac204efa857e7ce") }
{ "_id" : ObjectId("611e5cf953396d78985d2237") }
Я хотел бы объединить эти документы в один документ с массивом как таковым:
{
"_id" : [
ObjectId("61435ceb233ce0118c1d93ec"),
ObjectId("61435cf29598d31c17f0d839"),
ObjectId("611e5cf953396d78985d222f"),
ObjectId("61435cf773b8b06c848af83e"),
ObjectId("61435cfd7ac204efa857e7ce"),
ObjectId("611e5cf953396d78985d2237")
]
}
Мой последний этап в разработке-это просто:
{
$group:{_id:"$uniqueIds"}
}
Я перепробовал все, от $push до $mergeObjects, но что бы я ни делал, он продолжает возвращать исходные 6 документов в той или иной форме или форме вместо ОДНОГО документа. Любой совет был бы очень признателен! Заранее спасибо.
Ответ №1:
Запрос
- группировка по null, рассматривает всю коллекцию как 1 группу
db.collection.aggregate([
{
"$group": {
"_id": null,
"ids": {
"$push": "$_id"
}
}
},
{
"$unset": "_id"
}
])
Комментарии:
1. Спасибо, Такис!! Это сработало идеально!
2. документация mongodb настолько хороша, что также содержит примеры.