У меня есть документ, MongoDB, который имеет записи, выглядит следующим образом:Как группировать записи по полю в Mongoose?
[
{ _id: id, category_name: 'category1', parent_category: null },
{ _id: id, category_name: 'category2', parent_category: null },
{ _id: id, category_name: 'subcategory1', parent_category: id_parent_1 },
{ _id: id, category_name: 'subcategory2', parent_category: id_parent_1 },
{ _id: id, category_name: 'subcategory3', parent_category: id_parent_2 },
{ _id: id, category_name: 'subcategory4', parent_category: id_parent_2 }
]
Как вы можете видеть, я храню категории с parent_category
из null
и подкатегорий имеют идентификатор родительской категории в. То, что я ищу, чтобы сгруппировать их в какое-то формат, как это:
[
{ category_name: 'category1', categories: [
{ category_name: 'subcategory1', _id: id },
{ category_name: 'subcategory2', _id: id }
]
},
{ category_name: 'category2', categories: [
{ category_name: 'subcategory3', _id: id },
{ category_name: 'subcategory4', _id: id }
]
}
]
Так в основном групповой родительские категории с массивом с их дочерними категориями. Я использую Mongoose. Я попытался использовать структуру агрегации MongoDB, но я не могу получить желаемый результат. :(
У меня есть доступ для изменения схемы любого способа, который может быть необходим!
Заранее спасибо!
Почему вы проектировали свой документ таким образом в первую очередь? возможно, вы можете перепроектировать схему mongoose и сделать некоторые методы для проверки parent_id для назначения подкатегорий –
Это всего лишь два уровня категорий? могут ли ваши подкатегории иметь свои подкатегории? – yarons
@JoseOsorio Я не совсем понимаю, что вы имеете в виду – pmerino