Я пытаюсь обновить модель мангуста, чтобы она была обратно совместима с существующими приложениями.Изменение требует от меня добавления роли к участникам проектов.
Ниже старая структура
const projectSchema = new Schema(
{
name: { type: String, required: true },
.
.
.
members: [{ type: Schema.Types.ObjectId, ref: 'Member' }], .
.
.
{
toObject: {
virtuals: true,
},
toJSON: {
virtuals: true,
},
},
)
Ниже новая структура.
const projectSchema = new Schema(
{
name: { type: String, required: true },
.
.
.
projectMembers: [
{
member: { type: Schema.Types.ObjectId, ref: 'Member' },
role: { type: Schema.Types.ObjectId, ref: 'Role' },
},
],
.
.
.
{
toObject: {
virtuals: true,
},
toJSON: {
virtuals: true,
},
},
)
projectSchema.virtual('members').get(() => {
return this.projectMembers.map(projectMember => projectMember.member)
})
Я хотелсоздайте виртуальное поле, которое возвращает список memberIds, чтобы старая функциональность все еще работала.Я продолжаю получать следующую ошибку
MongooseError: If you are populating a virtual, you must set the localField and foreignField options
Я просмотрел документы, но не могу заставить это работать.Может ли кто-нибудь помочь мне с тем, где я иду не так?