我正在尝试根据 postID 的最高出现时间以及日期内对我的回复进行排序。
我的收藏结构:
[
{
"postID": "2",
"date": "2017-04-11 21:40:52",
},
{
"postID": "1",
"date": "2017-04-11 21:40:52",
},
{
"postID": "2",
"date": "2017-04-11 21:40:52",
},
{
"postID": "2",
"date": "2017-04-11 21:40:52",
},
]
所以在这种情况下,最高出现的是 postID :2。所以我想要这样的东西:
{
postID: 2,
postID: 1
}
注意:请记住,我也需要在两个日期之间进行搜索。
对不起,如果这太明显了。我甚至不知道如何开始制作Mongo / mongoose'找到搜索。
我的筹码:
任何输入都会有所帮助。感谢
答案 0 :(得分:1)
您可以使用MongoDB聚合框架对特定属性进行分组。 Mongoose has a low-level wrapper围绕聚合框架。
您可以$group
使用postID
作为_id,它将为您提供每个的唯一值。然后你可以$sort
。如果您愿意,还可以使用$project
将该属性重命名为postID
:
Collection.aggregate([
{$group: {_id: "$postID"}},
{$sort: {_id: -1}},
{$project: {postID: "$_id", _id: 0}}
]);