Я создал категории в mongoDB using node, Добавил родительское свойство для каждой вставки, чтобы определить, какая из них является родительской.Создайте объект json из категорий и подкатегорий, добавленных в mongodb с hirarchy
[{ _id: 5889a06f274afdfd6f2bf249,
cat_id: 1,
title: 'Parent Category',
description: '',
parent: null,
status: 1}]
[{ _id: 5889a06f274afdfd6f2bf249,
cat_id: 1,
title: 'Child Category',
description: '',
parent: 1,
status: 1}]
Теперь выход JSON должен использовать узел, когда я запрос с использованием метода db.find() из MongoDB.
{
obj: [
{
_id: "5889a06f274afdfd6f2bf249",
cat_id: 1,
title: "Parent Category",
description: "",
parent: null,
status: 1,
subcategories: [
{
_id: "5889a06f274afdfd6f2bf249",
cat_id: 1,
title: "Child Category",
description: "",
parent: 1,
status: 1
}
]
}
]}
В зависимости от версии MongoDB вы должны быть в состоянии использовать [** '$ graphLookup' **] (https://docs.mongodb.com/manual/reference/operator/aggregation/graphLookup/#pipe._S_graphLookup) для этой задачи. – chridam
У меня есть модули, созданные в узле и с помощью REST API для вызова методов '// Получить Категории module.exports.getCategories = функция (обратный вызов, предел) { Categories.find (функция (эээ, данные) { }) .limit (предел); } ' И называя это от Апи расслоение плотной' app.get (функция '/ API/категории', (REQ, Рез) { Categories.getCategories (функция (эээ, категории) { если (ERR) { throw err; } res.json (categories); }) }); ' –
Код готов и возвращает результат, но неверный набор данных. Не в состоянии понять, в чем именно ошибка. 'Categories.aggregate ([ { $ graphLookup: { из: "категории", startWith: "$ Родитель", connectFromField: "cat_id", connectToField: "родитель", как: "ПОДКАТЕГОРИЯ" }} ], обратный вызов) ' Должен быть список категорий, родительский элемент которого имеет значение null, а затем содержит категории как дочерние элементы, родительский элемент которых соответствует cat_id родительских категорий. –