这与使用$ lookup加入多个集合以及使用$ match
过滤相关我们有以下属性的订单产品集合:
_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
花费了太多时间。此处还需要排序/限制/跳过。
当我们应用查找时,它工作正常但是当我们应用匹配时,它会减慢每次引入过滤器的速度。
有没有优雅的方法来解决这个问题?
提前致谢
答案 0 :(得分:0)
如果您想加入某些内容,MongoDB不是一个有效的选择。我会操作一个集合。因此,每个文档都需要具有执行查询的所有信息。也许,您可以在orderProduct文档中添加两个字段:
{
orderProductId: 1,
product: {name: "product", id: 1}
retailer: [{id: 1, name: "Company"}],
supplier: [{id: 1, name: "Company"}]
}