【发布时间】:2018-08-14 10:26:11
【问题描述】:
这与使用 $lookup 加入多个集合和使用 $match 过滤有关
我们有具有以下属性的订单产品集合:
orderProduct(基础集合)
_id
productId
qty
retailerId
supplierId
unitPrice
lineTotal
产品(依赖集合)
_id
productName
subCategoryId
零售商(依赖集合)
_id
retailerName
供应商(依赖集合)
_id
supplierName
现在我们需要从依赖集合和基础集合中进行以下连接和选择属性
orderProduct joins Product
orderProduct joins Retailer
orderProduct joins Supplier
还需要从依赖集合和基础集合中过滤。
上述设置的基本问题是orderProduct 正在快速增长(当前大小为 90K)而$lookup 花费了太多时间。这里也需要排序/限制/跳过。
当我们应用查找时,它工作正常,但当我们应用匹配时,它会在每次引入过滤器时减慢。
有什么优雅的方法来处理这个问题吗?
提前致谢
【问题讨论】:
-
创建正确的索引。
-
欢迎来到 Stack Overflow。请查看stackoverflow.com/help/on-topic 和stackoverflow.com/help/formatting。您的问题缺少您正在使用的实际管道以及每个集合中的文档示例。虽然信息有点在这里,但很难阅读,这大大降低了您获得答案的机会。