Я хочу заполнить запрос с помощью mon goose, используя метод "populate". Я использую самую последнюю / стабильную версию mon goose. Соответствующие части моей схемы определены, как показано ниже. Проблема в том, что когда я пытаюсь заполнить const sessions = await Session.find().populate({ path: "coach", select: "name email" })
, я всегда получаю "coach": null
.
. Я ожидал, что он просто вернет сеансы, которые соответствуют моему запросу, вместе с объектом coach (user). Что я здесь не так делаю?
UserSchema
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
email: {
type: String,
required: [true, "email is required"],
unique: [true, "email must be unique"],
match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, "Invalid email"]
},
name: {
type: String,
required: [true, "name is required"]
},
(....)
});
export const User = mongoose.model('User', UserSchema);
SessionSchema
const mongoose = require('mongoose');
const SessionSchema = new mongoose.Schema({
coach: { type: mongoose.Schema.ObjectId, ref: 'User', required: true },
location: {
street: { type: String }
},
(......)
});
export const Session = mongoose.model('Session', SessionSchema);