Helt grundlæggende kan du oprette de 2 kategorier som følger
Category
- _id
- category
Products
_ _id (the product _id )
- category (use the _id from Category)
- subcategory (use string, or if you want, create a subcategory collection)
- name
- attributes (color, model)
Når du vil finde alle kategorierne
db.category.find()
Når du skal finde alle produkter i en kategori, skal du bruge kategorien _id
db.products.find({ cateogry: _id})
Når du skal finde alle produkter i en kategori, OG underkategori
db.products.find({ category: _id, subcategory: 'salon' }) //or subcategory_id
Når du skal finde et enkelt produkt
db.products.findOne({ _id }) //with the product_id
Når du vil finde et produkt ved navn
db.products.find({ name: { $regex : 'some search term', $option: 'i' } }) // where search term can be part of the product name
Når du vil finde alle kategorier, der indeholder BMW
db.products.aggregate([
{
$match: { "attributes.model": "BMW"
},
{
$group: { _id: "$category" }
}
])
Når du er begyndt at oprette databasen, så går du videre til at oprette visningerne til din db med aggregering, samt javascript. (at du kan oprette et separat stackoverflow-spørgsmål)
Ovenstående datastruktur og eksempelforespørgsler burde være tilstrækkelige til at håndtere din "avancerede filtrering"