首页 > 解决方案 > 多个猫鼬查找相关查询,如何简化为只做一个?

问题描述

基本上问题是对多个模型进行多个 mongo 查询以处理数据,当数据很大时会导致超时和性能问题。我需要提高代码性能。有没有办法做一个单一的聚合或与查询这些多个表相关的事情,并在下一阶段之前接受,用聚合的当前阶段获得的数据做一个映射,如我的示例代码块所示?

return Foo.findOne({ id: 123asd })
 .then(foundFoo => {
   return Bar.find({ 'prop': foundFoo.someProp })
      .then(foundBars => {
        const neededArrayForNextFind = foundBars.map(bar => bar.neededProp);
        return AnotherFoo.find({
               'someProp': {'$in' : neededArrayForNextFind} 
            }).then(foundAnotherFoo => { 
              return doOtherStuffWithFoundData(foundFoo,foundBars,foundAnotherFoo);   
            })
      })
})

谢谢你们!

标签: node.jsmongodbmongoose

解决方案


推荐阅读