Mongoose:在进入链接的populate()

时间:2017-05-10 20:13:41

标签: mongoose

我有这个问题:

Book.findById(someId).populate({
 path: 'pages'
}).exec(function(err) {});

Mongoose文档指出,首先,在Books集合中查找查找文档的查询已完成,然后继续查询Pages集合中的子文档。

我想在访问链式Book.findById()方法之前访问populate()查询返回的文档。我怎么能这样做?

我需要这个在options populate()对象中设置一个值,如下所示:

Book.findById(someId).populate({
  path: 'pages',
  options: {
    skip: book.pages.indexOf(someElementInPagesArray) // Need to access doc
  }
}).exec(function(err) {});

希望你们能帮忙。

1 个答案:

答案 0 :(得分:1)

你可以像这样单独调用populate:

Book.findById(someId).exec(function(err, book) {
  book.populate({
    path: 'pages',
    options: {
      skip: book.pages.indexOf(someElementInPagesArray)
    }
  }, function(err, book) {
    // Populate done
  })
});