【问题标题】:Populate Multiple Mongoose Model Fields using Mongoose-paginate plugin使用 Mongoose-paginate 插件填充多个 Mongoose 模型字段
【发布时间】:2015-06-09 06:23:16
【问题描述】:

我有一个带有两个参考字段(发送者和接收者)的 Mongoose 模式(约会)。两者都引用相同的架构(用户)。我正在尝试使用 mongoose-paginate 插件填充这两个字段。

约会架构 sn-p.

var paginate = require('mongoose-paginate');

var AppointmentSchema = new Schema({
  dateCreated: {type: Date, default: Date.now},
  sender: {type: ObjectId, ref: 'User'},
  receiver: {type: ObjectId, ref: 'User'},
  message: String,
  
  .........................
  
AppointmentSchema.plugin(paginate);

var Appointment = mongoose.model('Appointment', AppointmentSchema);
module.exports = Appointment;

用户架构 sn-p。

var UserSchema = new Schema({
  username: String,
  name: {
    first: String,
    middle: String,
    last: String
  },
  
  ..................
  
var User = mongoose.model('User', UserSchema);

module.exports = User;

猫鼬分页查询。

Appointment.paginate({}, request.query.page, request.query.limit,
    function(error, pageCount, appointments, itemCount) {
      if (error) {
         return console.log('ERRRRRRRRRR'.red);
      } else {
        console.log(appointments);
        return response.render('message/inbox',
        {
          pageTitle: "Trash",
          messages: appointments,
          pageCount: pageCount,
          itemCount: itemCount,
          currentPage: currentPage
        });
      }
    }, {columns: {}, populate: 'receiver', populate: 'sender', sortBy: {title: -1}});

这很好,但我想填充发送者和接收者字段。请问我该怎么做。我尝试以 JSON 格式传递字段,但没有成功。

【问题讨论】:

    标签: node.js express mongoose mongoose-populate


    【解决方案1】:

    我只是将一组字段传递给填充,它就像一个魅力。

    Appointment.paginate({}, request.query.page, request.query.limit,
        function(error, pageCount, appointments, itemCount) {
          if (error) {
             return console.log('ERRRRRRRRRR'.red);
          } else {
            console.log(appointments);
            return response.render('message/inbox',
            {
              pageTitle: "Trash",
              messages: appointments,
              pageCount: pageCount,
              itemCount: itemCount,
              currentPage: currentPage
            });
          }
        }, {columns: {}, populate: ['receiver', 'sender'], sortBy: {title: -1}});
    

    【讨论】:

    • 我很快就会需要这个。会试一试。谢谢。
    【解决方案2】:

    对于使用 mongoose-paginate-v2 的开发人员,您可以在分页选项中传递一个数组对象来填充多个引用。

    Collection.paginate(query,{
       page : 1,
       limit : 10,
       populate : [
         {
           path : 'refName1',
           select : {field : 1}
         },
         {
           path : 'refName2',
           select : {field : 1}
         }
       ]
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-31
      • 2020-11-03
      • 1970-01-01
      • 2021-11-03
      • 2012-01-22
      • 2013-10-17
      • 2017-05-21
      • 1970-01-01
      相关资源
      最近更新 更多