Pada dasarnya, Anda dapat membuat 2 kategori sebagai berikut
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)
Bila Anda ingin menemukan semua kategori
db.category.find()
Saat Anda perlu menemukan semua produk dalam suatu kategori, gunakan _id Kategori
db.products.find({ cateogry: _id})
Saat Anda perlu menemukan semua produk dalam satu kategori, DAN subkategori
db.products.find({ category: _id, subcategory: 'salon' }) //or subcategory_id
Saat Anda perlu menemukan satu produk
db.products.findOne({ _id }) //with the product_id
Bila Anda ingin mencari produk berdasarkan nama
db.products.find({ name: { $regex : 'some search term', $option: 'i' } }) // where search term can be part of the product name
Bila Anda ingin menemukan semua kategori yang berisi BMW
db.products.aggregate([
{
$match: { "attributes.model": "BMW"
},
{
$group: { _id: "$category" }
}
])
Setelah Anda mulai membuat database, Anda melanjutkan ke pembuatan tampilan untuk db Anda dengan agregasi, serta javascript. (bahwa Anda dapat membuat pertanyaan stackoverflow terpisah)
Struktur data di atas dan contoh kueri harus cukup untuk menangani "pemfilteran lanjutan"