Я хочу получить иерархические данные пользовательской партнерской сети, не только _ids, но и целые пользовательские данные для всех партнеров.
Я попробовал нативный Mongodb $ graphlookup , это было решение, но оно сохраняет данные json только до 2-го уровня и сглаживает данные после этого.
Users collection
_id (objectid)
username
firstName
lastName
partner
_id (this is the user collection _id)
Пользователь может и не может содержать партнера.
Есть ли способ достичь того, к чему я стремлюсь, в нативном стиле javascript, чтобы я мог создать его как функцию внутри Mongodb.
Функция примет пользовательский объект из приложения, а затем загрузит партнерскую сеть пользователя со всеми сведениями о коллекции пользователей:
| (root user)
\
| | | (level 1)
\ \ \
| | | | | | (level 2)
\ \ \
||| | | | | (level 3)
\ \ \
||| ||| || (level 4)
(to infinite level)
Пример вывода
"_id": ""5b95af0a9c13cd3db119331c",
"username": "fredymercury211",
"firstname": "Fredy",
"lastname": "Mercury",
"partners": [
{
"_id": "5b95af0a9c13cd3db1193324",
"username": "joesatriani787",
"firstname": "Price",
"lastname": "Friesen",
"partners": [
{
"_id": "5b95af0a9c13cd3db11933ae",
"username": "johnpetrucci412",
"firstname": "Ian",
"lastname": "Homenick",
"partners": [
{
"_id": "5b95af0a9c13cd3db1193324",
"username": "stevevai877",
"firstname": "Nicole",
"lastname": "Beer",
"partners": []
}
]
}
],
"_id": "5b95af0a9c13cd3db1193397",
"username": "robertplant988",
"firstname": "Brandi",
"lastname": "Douglas",
"partners": [
{
"_id": "5b95af0a9c13cd3db119333b",
"username": "yngwiemalmsteen355",
"firstname": "Benedict",
"lastname": "Langworth",
"partners": []
}
]
},