【发布时间】:2014-01-29 22:49:44
【问题描述】:
我正在使用以下查询来获取数据库中每篇文章的最新评论:
db.comments.aggregate([
{
"$match": {
"post_id": {
"$in": [ObjectId("52c5ce24dca32d32740c1435"), ObjectId("52c5ce24dca32d32740c15ad")]
}
}
},
{
"$sort": {"_id": -1}
},
{
"$group": {
"_id": "$post_id",
"lastComment": {
"$first": "$_id"
}
}
}
])
我希望它返回整个评论的文档,但它只返回每个文档的 _id 字段。那么,将所有最新的 cmets 作为一个完整文档(或至少包含其他一些字段)的正确方法是什么?
【问题讨论】:
-
cmets 是否在文档字段中?您正在选择该组的第一个 _id,但如果您有另一个带有 post cmets 的字段,则应更改“$_id”。也许一个示例文档可以帮助我们。
-
评论存储在一个单独的集合中,其中每个评论都是一个单独的文档,每个评论都通过“post_id”字段引用相应帖子的文档。如果这回答了你的问题。
标签: mongodb aggregation-framework