我正在尝试使端点列出最近的5个条目,而不会为用户返回重复的值。
这是我到目前为止所拥有的:
SpaceHistory
.find({owner: req.params.owner})
.sort({"createdDate": -1})
.exec(function(err, spaceHistory){
if(err){
return res.send(new errors.ServerError(err))
}
if(!spaceHistory){
return res.send(new errors.ResourceNotFoundError('Space History Not Found'))
}
res.send(spaceHistory)
})
}
我的数据如下:
[{
"_id": "5c42826eb8cba061e8d2eea4",
"owner": "5c427d3acbf49d4b7cfe8114",
"space": "5c427de8cbf49d4b7cfe8115",
"__v": 0,
"createdDate": "2019-01-19T01:50:38.664Z"
},
{
"_id": "5c428265b8cba061e8d2eea3",
"owner": "5c427d3acbf49d4b7cfe8114",
"space": "5c427de8cbf49d4b7cfe8115",
"__v": 0,
"createdDate": "2019-01-19T01:50:29.159Z"
},
{
"_id": "5c428215b8cba061e8d2eea2",
"owner": "5c427d3acbf49d4b7cfe8114",
"space": "5c427d3acbf49d4b7cfe8114",
"__v": 0,
"createdDate": "2019-01-19T01:49:09.875Z"
}]
我希望它最多返回5个文档,其中“空格”从不重复,并且按最新顺序排序。您将如何处理?
答案 0 :(得分:0)
当您尝试获取space
的唯一值时,
好吧,由于.limit
和.distinct
不能同时使用,您可以尝试
总计:
SpaceHistory.aggregate(
[ {$match:{owner: req.params.owner}}
{ "$group": { "_id": "$space" } },
{"$sort":{createdDate:-1}},
{ "$limit": 5 }
],
function(err,results) {
// results skipped and limited in here
}
);