mongoose findOne 怎么合并多个结果
发布于 11 年前 作者 dphdjy 6417 次浏览 最后一次编辑是 8 年前

Article.findById(aid, function (err, adoc){ adoc.user = User.findOne(adoc._id,function (err, udoc){ return udoc; }); return adoc; });

返回的是JQ对象和json的混合 怎么解决

4 回复

3级怎么办 Corpus => Article => User

@dphdjy 这个没留意到。。你可以在官网找一下~

Mongoose 本身可以 promise,那就可以这样写了:

var result;
Corpus.findById(corpusid)
      .populate('article')
      .exec()
      .then(function(corpus) {
         result = corpus;
         return corpus.article.populate('user').exec();       
       })
      .then(function(article) {
         result.article = article; // user已经 populate 出来了 :p           
       });

其实这个不是一个好的解决方法,你可以看 mongoose 的3.6的release notes 它已经支持 populate('parent.child')这样的写法了。

回到顶部