我正在嘗試運行一個$graphLookup類似下面所示的示例:目的是在給定特定記錄($match在此處有注釋)的情況下,通過immediateAncestors屬性檢索其完整的“路徑” 。如您所見,這沒有發生。我$convert在這里介紹了_idfrom的處理方式,因為string相信可以與_idfrom immediateAncestors記錄列表(是string)進行“匹配” 。因此,我確實使用不同的數據運行了另一個測試(不ObjectId涉及):db.nodos.insert({"id":5,"name":"cinco","children":[{"id":4}]})db.nodos.insert({"id":4,"name":"quatro","ancestors":[{"id":5}],"children":[{"id":3}]})db.nodos.insert({"id":6,"name":"seis","children":[{"id":3}]})db.nodos.insert({"id":1,"name":"um","children":[{"id":2}]})db.nodos.insert({"id":2,"name":"dois","ancestors":[{"id":1}],"children":[{"id":3}]})db.nodos.insert({"id":3,"name":"três","ancestors":[{"id":2},{"id":4},{"id":6}]})db.nodos.insert({"id":7,"name":"sete","children":[{"id":5}]})和查詢:db.nodos.aggregate( [ { $match: { "id": 3 } }, { $graphLookup: { from: "nodos", startWith: "$ancestors.id", connectFromField: "ancestors.id", connectToField: "id", as: "ANCESTORS_FROM_BEGINNING" } }, { $project: { "name": 1, "id": 1, "ANCESTORS_FROM_BEGINNING": "$ANCESTORS_FROM_BEGINNING.id" } }] )...輸出了我期望的結果(這5條記錄直接或間接與id3 條記錄相關):{ "_id" : ObjectId("5afe270fb4719112b613f1b4"), "id" : 3.0, "name" : "três", "ANCESTORS_FROM_BEGINNING" : [ 1.0, 4.0, 6.0, 5.0, 2.0 ]}問題是:有沒有一種方法可以實現我一開始提到的對象?我正在運行Mongo 3.7.9(來自官方Docker)提前致謝!
2 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
值得寫,因為您不會是最后一個問它的人。人們現在已經問過,誰還不知道這些“轉換”功能即將到來。一旦投入生產,我希望嘗試它的人數只會增加。因此,我想是“感謝您提出的問題”。
- 2 回答
- 0 關注
- 1373 瀏覽
添加回答
舉報
0/150
提交
取消