在Mongodb中执行find操作后,如何发送分页结果作为响应



我有这个查询要显示在前端的一个表中,所以我使用了分页,它可以很好地进行

tableSchema.statics.getn = (query, options) => {
return mongoose.model(MODEL_NAME).paginate(query, options);
};

但当我尝试执行搜索查询时,我无法对此执行分页。是否有任何方法将响应以分页形式发送给所有搜索到的查询我尝试了以下代码

tableSchema.statics.search = query => {
const Id = Number(query);
const isNumeric = value => /^d+$/.test(value);
if (!isNumeric(query)) {
if (query.includes("@")) {
const regex = new RegExp(query, "i");
return mongoose.model(MODEL_NAME).find({ "recipies.to": regex }).paginate(query);
}
return mongoose.model(MODEL_NAME).find({ "temp.name": query });
}
return mongoose.model(MODEL_NAME).find({ recipies: { Id } });
};

分页不是一个函数,这给我带来了一个错误。我尝试将查找查询结果存储在对象中,然后执行分页,但它仍然不起作用。

我正在使用";猫鼬-Pagiate-v2";用于分页

嗨,我想您错过了在模型部分添加分页插件的机会。

const mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate-v2');
const mySchema = new mongoose.Schema({
/* your schema definition */
});
mySchema.plugin(mongoosePaginate);
const myModel = mongoose.model('SampleModel', mySchema);
myModel.paginate().then({}); // Usage

您需要在模型中添加mongoosePaginate作为插件。

let options = {
sort: { createdOn: 1 },
page: 1,
limit: 10
};
ModelName.paginate({ 'recipies.to': 'value' }, options, function (err, result) {
if (err) {
console.log(err);
} else {
// Here you will get paginate array please console and check
console.log(result);
}

最新更新