mongodb集合上的复杂连接和大型表上的过滤

问题描述 投票:1回答:1

这与使用$ 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正在花费太多时间。此处还需要排序/限制/跳过。

当我们应用查找然后它工作正常但是当我们应用匹配时,它会减慢每次引入过滤器的速度。

有没有优雅的方法来处理这个?

提前致谢

mongodb lookup
1个回答
0
投票

如果您想加入某些东西,MongoDB不是一个有效的选择。我会操作一个集合。因此,每个文档都需要具有执行查询的所有信息。也许,您可以在orderProduct文档中添加两个字段:

{
  orderProductId: 1,
  product: {name: "product", id: 1}
  retailer: [{id: 1, name: "Company"}],
  supplier: [{id: 1, name: "Company"}]
}
© www.soinside.com 2019 - 2024. All rights reserved.