node.js - 在 Mongodb 中执行查找操作后如何发送分页结果作为响应?
问题描述
我有这个查询要显示在前端的表格中,所以我使用了工作正常的分页
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);
}
推荐阅读
- javascript - 未捕获的 ReferenceError: MarkerWithLabel 未定义 jQuery
- prometheus - Prometheus 选择性地抑制警报
- css - 导航栏垂直和居中对齐文本
- android - 应用程序返回前台时不显示 PIN 屏幕
- angular - 使用 nzShowSizeChanger 时,Ng ZORRO 分页更改 UI 中的“页面”字样
- node.js - 未能将助记词转换为 solana 钱包的种子
- ios - 如何通过 ms-outlook:// url 方案在 Outlook 中创建全天事件
- c++ - 我没看到什么?我对 recv 函数的理解是错误的,还是这个 while 循环做了一些意想不到的事情?
- python - bert-serving-start:jupyter 上的无效语法
- scala - 为 Couchbase 使用 Spark 连接器时出错