MongoDB聚合以递归方式获取两个集合中的文档

时间:2019-05-21 15:37:00

标签: mongodb mongodb-query aggregation-framework pymongo

鉴于以下示例数据,我想构造一个$ graphlookup查询,该查询以6级深的“朋友的朋友”的形式返回文档:

Collection 1: production_product
"_id":"0481857421"
"orderID":"0481857421"
"consumedProducts":[{  
         **"productID":"9564QTGFR2NPT"**
      } ]

Collection 2: product_production 
{  
"_id":"9564QTGFR2NPT"
"productID":"9564QTGFR2NPT"
"productionOrder":"0481804799"
"consumptionOrders":[{  
         "orderID":"0481804799"
      } ]
} 


从第一个集合(production_product)开始,我要通过 productID consumedProducts 中的每个条目与第二个集合(product_production)匹配,然后递归匹配所有条目在 consumptionOrders 中按 orderID 再次移至第一个集合。应该以递归方式完成6层深度。

到目前为止,我有以下内容:

$match{
  orderID: "0481870764"
},
$graphLookup {
  from: 'product_production',
  startWith: "consumedProducts.productID",
  connectFromField: '_id',
  connectToField: 'consumptionOrders.orderID',
  as: 'traceability',
  maxDepth: 6,
}

有人可以确认定义的查询是否正确吗?我需要在图形查找之前展开数组吗?

0 个答案:

没有答案