Я использует следующий запрос, чтобы извлечь один последний комментарий для каждого сообщения в базе данных:Возвращения всего документа от агрегации
db.comments.aggregate([
{
"$match": {
"post_id": {
"$in": [ObjectId("52c5ce24dca32d32740c1435"), ObjectId("52c5ce24dca32d32740c15ad")]
}
}
},
{
"$sort": {"_id": -1}
},
{
"$group": {
"_id": "$post_id",
"lastComment": {
"$first": "$_id"
}
}
}
])
Я ожидаю, что это возвратите весь комментарий документ, но он возвращает только _id
поля каждого документа. Итак, каков был бы правильный способ получить все последние комментарии в целом документе (или, по крайней мере, включить некоторые другие поля)?
являются комментарии в пределах поля документа? Вы выбираете первый _id группы, но если у вас есть другое поле с комментариями, вы должны изменить «$ _id». Может быть, примерный документ может нам помочь. – rubenfa
Комментарии хранятся в отдельной коллекции, где каждый комментарий является отдельным документом, и каждый из них ссылается на документ соответствующего сообщения через поле «post_id». Если это ответит на ваш вопрос. –