【问题标题】:How to send paginated result as response after performing find operation in Mongodb?在 Mongodb 中执行查找操作后如何发送分页结果作为响应?
【发布时间】:2021-07-05 07:26:13
【问题描述】:

我有这个查询要显示在前端的表格中,所以我使用了工作正常的分页

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”进行分页

【问题讨论】:

    标签: node.js mongodb mongoose pagination mongoose-schema


    【解决方案1】:

    您好,我想您错过了在模型部分添加分页插件。

    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);
        }
    

    【讨论】:

    • 我已经添加了插件我在这行遇到错误return mongoose.model(MODEL_NAME).find({ "recipies.to": regex }).paginate(query);
    • 您好,我编辑了答案并编写了分页查询。请检查它可能会有所帮助。你不需要添加 find()。
    • 嘿,谢谢,实际上我自己已经这样做了,是的,您的解决方案是正确的。再次非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多