Mongoose查询填充的字段

Mongoose查询填充的字段,mongoose,populate,Mongoose,Populate,在这里,我试图从_文件引用中查找与填充字段匹配的所有文档。这似乎不起作用。这样的事情可能吗 我可以将项目字段复制到此对象,作为一种仅用于查询的解决方法,但我当然不希望如此。否,findquery的条件参数只能引用正在查询的集合 populate不是一个联接,它只是一个方便的函数,可以使用附加查询来跟踪主查询,从而从其他集合中提取相关数据。谢谢。所以,可以肯定的是,为了基于项目查询历史记录集合,我必须添加项目字段,从文件模型复制它?检索所有文档并随后进行筛选不是一个选项,因为历史记录集合可能非常大

在这里,我试图从_文件引用中查找与填充字段匹配的所有文档。这似乎不起作用。这样的事情可能吗


我可以将项目字段复制到此对象,作为一种仅用于查询的解决方法,但我当然不希望如此。

否,
find
query的条件参数只能引用正在查询的集合


populate
不是一个联接,它只是一个方便的函数,可以使用附加查询来跟踪主查询,从而从其他集合中提取相关数据。

谢谢。所以,可以肯定的是,为了基于项目查询历史记录集合,我必须添加项目字段,从文件模型复制它?检索所有文档并随后进行筛选不是一个选项,因为历史记录集合可能非常大。@0x80正确,或者获取所有具有匹配的
项目
文件
文档,然后使用第一次查询中的
\u id
值对
历史记录
进行
$in
查询。我现在得到了它。很高兴知道有两种选择。谢谢回答此问题时,此选项可能不存在,但填充方法支持“匹配”属性:
populate({path:'notes',match:/airline/,select:'text',model:'modelName'options:opts})。
@DougMolineux
match
选项仅控制在主查询完成后填充路径的文档。如果引用的文档不匹配,则原始引用id值将保持未填充状态。
   db.History.find({'_file.project': 'someproject' )
      .populate('_file', 'name reference project')
      .sort(sortField || '-created')
      .limit(max || 64)
      .exec(this);