【发布时间】:2020-12-01 15:44:54
【问题描述】:
尝试在我填充的查询上实现分页。我成功填充了猫鼬填充,但限制或跳过不起作用。还尝试了 mongoose-paginate 库,分页工作但人口没有。 作为输出,我只需要按用户 ID 分页的任务数组。谢谢。
用户架构:
var mongoosePaginate = require('mongoose-paginate');
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
unique: true,
required: true,
},
password: {
type: String,
required: true,
},
uavs: [uavSchema],
missions: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Mission' }],
});
userSchema.plugin(mongoosePaginate);
这有效,但限制或跳过无效
const getMissions = async (_id) => {
let missions = [];
try {
await User.findOne({ _id: _id })
.lean()
.populate('missions')
.then((usr) => {
console.log(usr);
Object.assign(missions, usr.missions);
});
return { success: true, missions };
} catch (err) {
return { success: false, err };
}
};
output when using mongoose populate
然后尝试使用 mongoose-paginate
const getMissions = async (_id) => {
try {
var options = {
populate: 'missions',
page: 1,
limit: 4,
lean: true,
};
await User.paginate({ _id: _id }, options, function (err, result) {
console.log(result);
});
} catch (err) {
console.log(err);
}
};
【问题讨论】:
标签: node.js mongodb express mongoose pagination