鉴于以下示例数据,我想构造一个$ 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,
}
有人可以确认定义的查询是否正确吗?我需要在图形查找之前展开数组吗?