"hello" } { "_id" : "2", "text" : "hello2", "parent" : "1" } { "_id" : "3", "text" : "hello3", "parent" : "2" } { "_id" : "4", "text" : "hello4", "parent" : "3" }
и такой запрос
db.elements.aggregate( [
{"$graphLookup": {
"from": "elements",
"startWith": "$parent",
"connectFromField": "parent",
"connectToField": "_id",
"as": "parents"
}}
] )
Я получаю
{ "_id" : "1", "text" : "hello", "parents" : [ ] } { "_id" : "2", "text" : "hello2", "parent" : "1", "parents" : [ { "_id" : "1", "text" : "hello" } ] } { "_id" : "3", "text" : "hello3", "parent" : "2", "parents" : [ { "_id" : "1", "text" : "hello" }, { "_id" : "2", "text" : "hello2", "parent" : "1" } ] } { "_id" : "4", "text" : "hello4", "parent" : "3", "parents" : [ { "_id" : "2", "text" : "hello2", "parent" : "1" }, { "_id" : "1", "text" : "hello" }, { "_id" : "3", "text" : "hello3", "parent" : "2" } ] } { "_id" : "5", "text" : "hello5", "parent" : "4", "parents" : [ { "_id" : "2", "text" : "hello2", "parent" : "1" }, { "_id" : "1", "text" : "hello" }, { "_id" : "3", "text" : "hello3", "parent" : "2" }, { "_id" : "4", "text" : "hello4", "parent" : "3" } ] }
В результате не верный порядок родителей для 3 и 4 элемента. Родители по id идут в пордяке 2, 1, 3 ... хотя должны идти 1,2,3 ... В чём может быть проблема?
а что не так? если порядок в массиве, то разве он гарантируется?
Добавь sort
Обсуждают сегодня