在 Mongodb 中执行查找操作后,如何将分页结果作为响应发送?
How to send paginated result as response after performing find operation in Mongodb?
我要在前端的 table 中显示此查询,所以我使用了 paginate,它工作正常
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 } });
};
分页不是函数,这让我出错。我尝试将查找查询结果存储在对象中,然后执行分页仍然无法正常工作。
我正在使用“mongoose-paginate-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);
}
我要在前端的 table 中显示此查询,所以我使用了 paginate,它工作正常
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 } });
};
分页不是函数,这让我出错。我尝试将查找查询结果存储在对象中,然后执行分页仍然无法正常工作。
我正在使用“mongoose-paginate-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);
}