Mongoose.js - 人口和其他领域?
Posted
技术标签:
【中文标题】Mongoose.js - 人口和其他领域?【英文标题】:Mongoose.js - population and additional fields? 【发布时间】:2015-06-06 09:00:03 【问题描述】:我想向 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 属性指定何时将(日期对象)引用添加到 UserModel
mongoose 是否可行?我应该如何更改架构?
谢谢
【问题讨论】:
你能编辑你的问题并展示Movie
模型猫鼬模式是什么样的吗?
哦,是的,刚刚编辑过
【参考方案1】:
将架构更改为
let userSchema = new Schema(
watchedMovies: [
movie:
type: Schema.Types.ObjectId,
ref: 'Movie'
,
watchedAt: Date
]
)
然后你可以通过.populate('watchedMovies.movie')
填充
【讨论】:
我知道,但问题不在于这个。 那么您的问题到底是什么?对我来说,当您使用.populate
时,这听起来像是您在问如何获取更多字段而不仅仅是标题。这不是一个非常有用的方式来回应不正确的答案
当我添加对用户模型的引用(电影的引用)时,我想存储该引用何时保存的时间戳,即知道用户何时观看该电影
我刚试过,好像不行。它应该工作并且我做错了什么,还是你试图猜测实现? :)
不知道昨天发生了什么(可能已经太晚了),但现在早上再次尝试后 - 它似乎只是按预期工作。非常感谢!以上是关于Mongoose.js - 人口和其他领域?的主要内容,如果未能解决你的问题,请参考以下文章