2015-04-01 35 views
0

我想一些额外的数据添加到的usermodelwatchedMovies和我有以下模式:Mongoose.js - 人口和附加字段?

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

和:

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

我想知道是否有可能增加任何额外的字段到观看了电影对象并将它与ObjectId一起存储?我想补充watchedAt日期,以便当我填充watchedMoviesUserModel.find().populate('watchedMovies', 'title').exec(...)我会得到这样的:

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

watchedAt属性指定时(Date对象)参考加入的usermodel

猫鼬可能吗?我该如何改变我的模式?

谢谢

+0

填入您可以编辑您的问题,并显示'Movie'模型猫鼬的架构是什么样的? – chridam 2015-04-01 16:12:48

+0

哦,是的,只是编辑 – 2015-04-01 16:22:21

回答

3

您的模式更改为

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

那么你可以通过.populate('watchedMovies.movie')

+0

我知道,但问题不在于此。 – 2015-04-01 18:10:30

+0

你的问题到底是什么呢?对我来说,这听起来像是在使用'.populate'时,如何获得更多的字段而不仅仅是标题。这不是一个非常有用的方式来回答不正确的答案 – jtmarmon 2015-04-01 19:02:42

+0

当我添加引用用户模型(电影引用)时,我想存储该引用保存的时间戳,即知道用户何时观看该电影 – 2015-04-01 19:03:41