Mongoose populate返回空数组但返回数据而没有填充

时间:2017-11-16 06:56:25

标签: javascript mongodb mongoose mongoose-schema mongoose-populate

我正在尝试获取约会并使用用户详细信息和医生详细信息填充它们。我有这样的架构

stdout_logfile_maxbytes=1024
stdout_logfile_backups=5
stderr_logfile_maxbytes=1024
stderr_logfile_backups=5

正在运行

let appointmentSchema = new Schema({
  reason: String,
  start: DateType,
  end: DateType,
  appointmentStamp: Number,
  userId: {
    type: ObjectId,
    ref: 'User'
  },
  doctorId: {
    type: ObjectId,
    ref: 'Doctor'
  },
  approved: Boolean,
  held: Boolean,
  timeOfAcceptance: Number,
  createdOn: { type: Number, default: (new Date().getTime()) },
  updatedAt: Mixed
}, {runSettersOnQuery: true})

我得到一个空数组 但 Appointment.find({userId:authId})。exec() 使用find中提供的userId返回该用户的所有约会 我错过了什么

以下是预约示例

Appointment.find({userId: authId}).populate('userId doctorId').exec()

1 个答案:

答案 0 :(得分:0)

我试过这个并且它有效,不知道为什么

patient: {
   type: String,
   ref: 'patient'
},
doctor: {
   type: String,
   ref: 'doctor'
}

而不是ObjectId我使用了String类型 然后查询就像

Appointment.find({patient: authId, canceled: false})
  .populate('patient doctor').exec()