【发布时间】:2013-09-22 22:35:11
【问题描述】:
我有Category 模型:
Category:
...
articles: [{type:ObjectId, ref:'Article'}]
文章模型包含对Account model 的引用。
Article:
...
account: {type:ObjectId, ref:'Account'}
因此,填充 articles 类别模型将是:
{ //category
articles: //this field is populated
[ { account: 52386c14fbb3e9ef28000001, // I want this field to be populated
date: Fri Sep 20 2013 00:00:00 GMT+0400 (MSK),
title: 'Article 1' } ],
title: 'Category 1' }
问题是:如何填充已填充字段([articles])的子字段(帐户)?这是我现在的做法:
globals.models.Category
.find
issue : req.params.id
null
sort:
order: 1
.populate("articles") # this populates only article field, article.account is not populated
.exec (err, categories) ->
console.log categories
我知道这里讨论过:Mongoose: Populate a populated field 但没有找到真正的解决方案
【问题讨论】:
-
就像 rroxysam 说的,
.populate({path : 'userId', populate : {path : 'reviewId'}}).exec(...)似乎是一个递归逻辑,这是有道理的。它的作品! -
自发布此问题以来对 Mongoose 的更新已解决此问题。这是文档:Populating across multiple levels