如何在调用mongo集合之前对它们进行排序?我已经尝试过索引和排序,但是结果仍然显示乱序。排序有效,但仅对找到拉出的结果进行排序,但是我需要拉出已按日期顺序排序的结果。
events = await Event.find({
time: {
$gte:new Date()
},
$and: [
{
active: true
}
]
})
.sort("-time")
.limit(limit)
.skip(skip);
应用限制5:
{
"data": {
"searchEvents": [
{
"date": "2018-10-22T05:00:00.000Z",
"events": [
{
"eventname": "First",
"time": "2018-10-22T05:00:00.000Z"
},
{
"eventname": "Second",
"time": "2018-10-22T05:00:00.000Z"
}
]
},
{
"date": "2018-10-23T05:00:00.000Z",
"events": [
{
"eventname": "Third",
"time": "2018-10-23T05:00:00.000Z"
}
]
},
{
"date": "2018-10-26T05:00:00.000Z",
"events": [
{
"eventname": "Fourth",
"time": "2018-10-26T05:00:00.000Z"
}
]
},
{
"date": "2018-10-26T06:00:00.000Z",
"events": [
{
"eventname": "Fifth",
"time": "2018-10-26T06:00:00.000Z"
}
]
}
]
}
}
限制为3:仅显示第3,第4和第5
使用的索引: EventsSchema.index({time:-1});
进一步的说明 问题澄清:我正在尝试对无限滚动的结果进行排序。基本上,Mongo会提取10个文档,然后我对这些结果进行排序,然后当用户感到不满意时,他会再次跳过前10个文档。问题是,这不是有条理的。如果我想按日期对数据进行排序。目前,它会返回前10个结果,并根据“自然顺序”在找到日期后按日期排序。如何根据日期查找Mongo? *请记住index和sort()都在排序之后。
答案 0 :(得分:-1)
使用猫鼬分页纸
或
查询所有结果... 对结果进行排序和限制。