Mongoose заполнить возвращает пустой массив, но возвращает данные без заполнения
Я пытаюсь получить встречи и заполнить их с данными пользователя и сведениями о враче. У меня есть такая схема
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}).populate('userId doctorId').exec()
Я получаю пустой массив, но Appointment.find({userId: authId}). Exec() возвращает все встречи для этого пользователя с предоставленным userId, чтобы найти то, что я пропускаю
Вот пример назначения
{
"_id": "5a0d424079191657fca9e853",
"reason": "Say Hello",
"approved": false,
"held": false,
"doctor": "5a0add9b577d7916187cd9f2",
"patient": "59f5df20a3071554c5f843e1",
"appointmentStamp": 1510927380000,
"__v": 0,
"createdOn": 1510817910134
}
1 ответ
Я попробовал это, и это сработало, не знаю почему
patient: {
type: String,
ref: 'patient'
},
doctor: {
type: String,
ref: 'doctor'
}
вместо ObjectId я использовал тип String, тогда запрос будет похож
Appointment.find({patient: authId, canceled: false})
.populate('patient doctor').exec()