Я работаю над веб-приложением и не могу решить свою проблему.На сайте есть категории.Основные категории и каждая категория имеет свои подкатегории, и подкатегории могут также иметь подкатегории.Все они создаются пользователями.Я могу собрать коллекцию без проблем, но не могу выполнить мой запрос.
Допустим, это моя коллекция:
[
{
categoryName: 'category1',
otherValue: 'value1',
subCategories: [
{
categoryName: 'category2',
otherValue: 'value2',
subCategories: [
{
categoryName: 'category3',
otherValue: 'value3',
subCategories: [],
}
]
},
{
categoryName: 'category4',
otherValue: 'value4',
subCategories' : []
},
{
categoryName: 'category5',
otherValue: 'value5',
subCategories: [
{
categoryName: 'category6',
otherValue: 'value6',
subCategories: []
},
{
categoryName: 'category7',
otherValue: 'value7',
subCategories: []
}
]
}
]
},
{
categoryName: 'category8',
otherValue: 'value8',
subCategories: [
{
categoryName: 'category9',
otherValue: 'value9',
subCategories: [
{
categoryName: 'category10',
otherValue: 'value10',
subCategories: [],
}
]
},
{
categoryName: 'category11',
otherValue: 'value11',
subCategories' : []
},
{
categoryName: 'category12',
otherValue: 'value12',
subCategories: [
{
categoryName: 'category13',
otherValue: 'value13',
subCategories: []
}
]
}
]
},
]
Я не хочу использовать .eval () и не смог найти ни одногодругое решение, чтобы получить результат, который я хочу.Я потратил на это уже 3 дня безуспешно.Я надеюсь, что кто-нибудь сможет мне помочь.
Результат, который я хотел бы получить, - только категория Имена:
[
{
categoryName: 'category1',
subCategories: [
{
categoryName: 'category2',
subCategories: [
{
categoryName: 'category3'
}
]
},
{
categoryName: 'category4'
},
{
categoryName: 'category5',
subCategories: [
{
categoryName: 'category6'
},
{
categoryName: 'category7'
}
]
}
]
},
{
categoryName: 'category8',
subCategories: [
{
categoryName: 'category9',
subCategories: [
{
categoryName: 'category10'
}
]
},
{
categoryName: 'category11'
},
{
categoryName: 'category12',
subCategories: [
{
categoryName: 'category13'
}
]
}
]
},
]
Любая идея приветствуется :) Заранее спасибо
ОБНОВЛЕНИЕ
То, что я пытался сделать так:
db.categories.find({ 'subCategories' : {$exists: true, $ne: []}}, { 'categoryName' : 1, '_id' : 0, 'subCategories.categoryName' : 1, 'subCategories.subCategories.categoryName' : 1 });
Но на этом пути я могу видеть только на 2 уровня глубиной, и это статический способ,Мне бы хотелось, чтобы у меня был динамический способ сопоставления каждого имени категории внутри подкатегорий и подкатегорий подкатегорий.
Надеюсь, это будет понятнее.