我试图弄清楚如何有效地对数据进行分页。如果我有一个网址,例如:example.com/items?page=5
,我怎样才能每次都检索到正确的记录(以便相同的记录不会显示在另一个页面上)?我想我必须首先对DB记录进行排序,然后使用mongoose进行范围查询,例如下面的查询。
当记录数量迅速扩大时,这种情况如何?我担心分拣过程需要太长时间,并且会阻碍整个过程。有什么建议吗?
Submission.find({
/* First Case: Hour */
created: { $lt: new Date(), $gt: new Date(year+','+month+','+day+','+hour+','+min+','+sec) } // Get results from start of current hour to current time.
/* Second Case: Day */
created: { $lt: new Date(), $gt: new Date(year+','+month+','+day) } // Get results from start of current day to current time.
/* Third Case: Month */
created: { $lt: new Date(), $gt: new Date(year+','+month) } // Get results from start of current month to current time.
/* Fourth Case: Year */
created: { $lt: new Date(), $gt: new Date(year) } // Get results from start of current year to current time.
})
答案 0 :(得分:1)
您可以处理以下查询:
var query = Model.find(conditions).sort(sort).skip(skip).limit(limit);
其中
然后执行以下查询以获取记录
return query
.exec()
.then(function (cursor) { ...... });