Заполнение нескольких полей мангустом, имеет ли значение порядок? - PullRequest
0 голосов
/ 17 октября 2018

Скажем, у меня есть следующая схема:

UserSchema = Schema({
  _id: Schema.Types.ObjectId
})

RoomSchema = Schema({
  _id: Schema.Types.ObjectId,
  userId: {
    type: Schema.Types.ObjectId,
    ref: 'User'
  }
})

CompanySchema = Schema({
  _id: Schema.Types.ObjectId,
  user: {
    type: Schema.Types.ObjectId,
    ref: 'User'
  }
})

И у моей CompanySchema есть следующий виртуальный:

CompanySchema.virtual('rooms', {
  ref: 'Room',
  localField: 'user',
  foreignField: 'userId'
})

Теперь у меня есть документ компании, и я хочу заполнить оба моих 'user 'field и my' rooms 'virtual:

myCompany.populate('user').populate('rooms')

Это работает?Поскольку 'rooms' использует поле 'user' в качестве ref, ожидая ObjectId, однако, если это поле заполнено, оно больше не ObjectId, а документ.Таким образом, теоретически я должен был бы сначала заполнить «комнаты», а затем «пользователя», но мне интересно, позаботится ли mongoose об этом и заполнил «комнаты» с помощью своей ссылки до заполнения пользователя.

...