Для контекста я использую MongoDB 3.6.4 и пытаюсь построить иерархическую схему для разрешений ACL, но я сведу проблему к минимуму и сохраню детали.
Скажем, у меня естьпростая коллекция C
, где parents
- это список ссылок на другие документы в C
:
{
_id: ObjectId
parents: Array(ObjectId)
}
Если я выполняю агрегацию, например:
[
{
$match: {_id: ObjectId("f00...")}
},
{
$graphLookup: {
from: "C",
startWith: "$parents",
connectFromField: "parents",
connectToField: "_id",
as: "graph"
}
}
]
Iполучить данные типа:
{
"_id": ObjectId("f00..."),
"parents": [ObjectId("f01..."), ObjectId("f02..."), ...],
"graph": [<doc1>, <doc2>, <doc3>, ...]
}
Есть ли способ разбить элементы graph
на документы?например, из предыдущего примера вывода:
{
"_id": ObjectId("f00..."),
"parents": [ObjectId("f01..."), ObjectId("f02..."), ...]
}
<doc1>
<doc2>
<doc3>