node.js - 多个猫鼬查找相关查询,如何简化为只做一个?
问题描述
基本上问题是对多个模型进行多个 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);
})
})
})
谢谢你们!
解决方案
推荐阅读
- r - 由线条连接的条形图/如何连接在 R / ggplot2 中使用 grid.arrange 排列的两个图形
- minimatch - TFS 2018 minimatch 模式未能排除测试项目
- php - T-SQL 在创建备份文件后立即删除它
- c# - MongoDB C# 驱动程序 - 将集合序列化为接口
- android - 当区域设置为阿拉伯语时,来自 UTC 日历错误的 SimpleDateFormat
- javascript - 简化递增选项组件渲染
- java - 导入大量子类的最佳方法?
- ajax - 选中复选框时如何获得总分?
- url - Jmeter参数化WebSocket变量
- amazon-web-services - dynamodb 更新未触发 Lambda 函数:键错误