【发布时间】:2016-11-14 09:42:02
【问题描述】:
我有一个包含文章的 ArticleGroup,模型看起来像这样
var ArticleGroup = new mongoose.Schema({
articles:[{type:mongoose.Schema.Types.ObjectId,ref:'Article'}]
})
var Article = new mongoose.Schema({
rates:[{
uid:String,
rate:Number //user's rate number to this article
}]
})
现在一个用户(我们称他为 JACK)想要对 ArticleGroup 执行查询,填充该组中的文章,选择归档的费率
通常我会这样做
ArticleGroupModel
.findById(articleGroupId)
.populate('articles','rates')
.select('articles')
.exec((err, articleGroup) => {
if (err) return next(err)
//...
})
但现在我只想要 JACK 的费率 如果一篇文章有 JACK 的评分,就这样返回那篇文章
{
_id:"23jrf23orj89p3fwje4",
rates:[{
uid:"JACK's uid",
rate:"JACK's rate number"
}]
}
如果一篇文章没有 JACK 的费率,则该文章仍会被填充,但像这样归档的是空费率
{
_id:"23jrf23orj89p3fwje4",
rates:[]
}
有什么办法吗?
【问题讨论】:
标签: arrays node.js mongodb mongoose mongoose-populate