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

时间:2015-04-01 15:57:45

标签: node.js mongodb mongoose mongoose-populate

我想向 UserModel 添加一些额外的数据,例如 watchedMovies ,我有以下架构:

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

let movieSchema = new Schema({
  title: String
})

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

{
  _id: ObjectId(UserId),
  watchedMovies: [{
    _id: ObjectId(...),
    title: 'Some title',
    watchedAt: TimeStamp
  }]
}

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

是否可以使用mongoose,我应该如何更改架构?

谢谢

1 个答案:

答案 0 :(得分:7)

将架构更改为

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

然后您可以按.populate('watchedMovies.movie')

填充