电影模型的属性watched
带有value
,即{watched: 12345}
电影模型也引用用户模型。
如果我想检索所有id(“监视的”值),则必须执行以下类似的操作:
const res = await Movie.find({ user: user.id }).select('watched -_id')
const watched = res.map(w => w.watched)
console.log(watched) // [123343, 34546, 45656]
是否有更好的方法来仅检索模型值?
答案 0 :(得分:0)
您可以使用以下汇总
const watched = await Movie.aggregate([
{ "$match": { "user": mongoose.Types.ObjectId(user.id) }},
{ "$group": {
"_id": null,
"watchedIds": { "$push": "$watched" }
}}
])
console.log(watched[0].watchedIds) // [123343, 34546, 45656]
但是我可以说在您使用的查询和上面的查询中没有性能问题。