Mongoose.js - 人口和其他领域?

Vyt*_*kus 4 mongoose mongodb node.js mongoose-populate

我想添加一些额外的数据的usermodelwatchedMovies,我有以下模式:

let userSchema = new Schema({
  watchedMovies: [{
    type: Schema.Types.ObjectId,
    ref: 'Movie'
  }]
})
Run Code Online (Sandbox Code Playgroud)

和:

let movieSchema = new Schema({
  title: String
})
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以向watchedMovies对象添加任何其他字段并将其与ObjectId一起存储?我想添加watchedAt date所以当我填充watchedMovies时,UserModel.find().populate('watchedMovies', 'title').exec(...)我会得到类似的东西:

{
  _id: ObjectId(UserId),
  watchedMovies: [{
    _id: ObjectId(...),
    title: 'Some title',
    watchedAt: TimeStamp
  }]
}
Run Code Online (Sandbox Code Playgroud)

watchedAt属性指定何时(Date对象)引用添加到UserModel

是否有可能与猫鼬,我应该如何更改我的架构?

谢谢

jtm*_*mon 8

将架构更改为

let userSchema = new Schema({
  watchedMovies: [{
    movie: {
        type: Schema.Types.ObjectId,
        ref: 'Movie'
    },
    watchedAt: Date
  }]
})
Run Code Online (Sandbox Code Playgroud)

那么你可以填充 .populate('watchedMovies.movie')