嗨,我的收藏集是这样的,我试图按日期的排序顺序获取特定blog_id的所有评论列表。
[ { "_id" : ObjectId("565f0f5d77f0c7bd11bbadd8"), "blog_id" : ObjectId("56587befdb7224110f007233"), "comments" : [ { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "pradip is bhole baba", "_id" : ObjectId("565f0f5d77f0c7bd11bbadd9"), "dt" : ISODate("2015-12-02T15:33:49.578Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "honkog pokhara... he he ha ha", "_id" : ObjectId("565f1034fd07cbfc1129db0b"), "dt" : ISODate("2015-12-02T15:37:24.581Z") } ], "record_count" : 2, "__v" : 0 } { "_id" : ObjectId("565efa37635f09900d21a339"), "blog_id" : ObjectId("56587befdb7224110f007233"), "comments" : [ { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "wat a nice car wow", "_id" : ObjectId("565efa37635f09900d21a33a"), "dt" : ISODate("2015-12-02T14:03:35.289Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "love is life budikhola ma dives", "_id" : ObjectId("565efa76635f09900d21a33b"), "dt" : ISODate("2015-12-02T14:04:38.661Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "bholi ajaya ko bihe", "_id" : ObjectId("565efaa0635f09900d21a33c"), "dt" : ISODate("2015-12-02T14:05:20.847Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "manish is nice", "_id" : ObjectId("565efb17635f09900d21a33d"), "dt" : ISODate("2015-12-02T14:07:19.704Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "niroj is cool", "_id" : ObjectId("565efd53c22dddc80e8f461c"), "dt" : ISODate("2015-12-02T14:16:51.730Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "ramesh is cool", "_id" : ObjectId("565f0d376d82e24c11f6c0d1"), "dt" : ISODate("2015-12-02T15:24:39.010Z") } ], "record_count" : 6, "__v" : 0 } ]
我想按日期的降序列出特定blog_id的所有评论,如下所示
[ { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "wat a nice car wow", "_id" : ObjectId("565efa37635f09900d21a33a"), "dt" : ISODate("2015-12-02T14:03:35.289Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "love is life budikhola ma dives", "_id" : ObjectId("565efa76635f09900d21a33b"), "dt" : ISODate("2015-12-02T14:04:38.661Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "bholi ajaya ko bihe", "_id" : ObjectId("565efaa0635f09900d21a33c"), "dt" : ISODate("2015-12-02T14:05:20.847Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "manish is nice", "_id" : ObjectId("565efb17635f09900d21a33d"), "dt" : ISODate("2015-12-02T14:07:19.704Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "niroj is cool", "_id" : ObjectId("565efd53c22dddc80e8f461c"), "dt" : ISODate("2015-12-02T14:16:51.730Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "ramesh is cool", "_id" : ObjectId("565f0d376d82e24c11f6c0d1"), "dt" : ISODate("2015-12-02T15:24:39.010Z") } { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "pradip is bhole baba", "_id" : ObjectId("565f0f5d77f0c7bd11bbadd9"), "dt" : ISODate("2015-12-02T15:33:49.578Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "honkog pokhara... he he ha ha", "_id" : ObjectId("565f1034fd07cbfc1129db0b"), "dt" : ISODate("2015-12-02T15:37:24.581Z") } ]
我如何在mongooes或mongodb中做到这一点
我试过了
BlogComments.aggregate([ {$match:{blog_id:blogId}}, { $group:{ _id:statusId,comment_count:{$sum:"$record_count"},comments:{$push:"$comments"} } }, { "$unwind": "$comments" }, { "$unwind": "$comments" }, { "$group": { "_id": statusId, "comment_count": { "$first": "$comment_count" }, "comments": { "$addToSet": "$comments" } }}, { $sort: {'comments._id': 1}} ]);
该查询提供了注释以及来自多个文档的所有相关注释,但是注释是随机的。$ sort不适用于我
先感谢您。
乔琳
试试这个:
db.comments.aggregate( [ {$match: {blog_id: ObjectId("56587befdb7224110f007233")}}, //match blogid {"$unwind": "$comments"}, //unwind the comments array {$sort: {"comments.dt": 1}}, //sort the comment documents by date { "$group": { "_id": '$blog_id', //group comment documents by blog_id "comments": { "$push": "$comments" //push comments of same blog_id into an array } } }])
根据您的样本数据,输出将是:
{ "_id" : ObjectId("56587befdb7224110f007233"), "comments" : [ { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "wat a nice car wow", "_id" : ObjectId("565efa37635f09900d21a33a"), "dt" : ISODate("2015-12-02T14:03:35.289Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "love is life budikhola ma dives", "_id" : ObjectId("565efa76635f09900d21a33b"), "dt" : ISODate("2015-12-02T14:04:38.661Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "bholi ajaya ko bihe", "_id" : ObjectId("565efaa0635f09900d21a33c"), "dt" : ISODate("2015-12-02T14:05:20.847Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "manish is nice", "_id" : ObjectId("565efb17635f09900d21a33d"), "dt" : ISODate("2015-12-02T14:07:19.704Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "niroj is cool", "_id" : ObjectId("565efd53c22dddc80e8f461c"), "dt" : ISODate("2015-12-02T14:16:51.730Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "ramesh is cool", "_id" : ObjectId("565f0d376d82e24c11f6c0d1"), "dt" : ISODate("2015-12-02T15:24:39.010Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "pradip is bhole baba", "_id" : ObjectId("565f0f5d77f0c7bd11bbadd9"), "dt" : ISODate("2015-12-02T15:33:49.578Z") }, { "user_id" : ObjectId("562fa014888806820e21e0df"), "user_full_name" : "Niroj Paudel", "comment" : "honkog pokhara... he he ha ha", "_id" : ObjectId("565f1034fd07cbfc1129db0b"), "dt" : ISODate("2015-12-02T15:37:24.581Z") } ] }