मूल रूप से, आप निम्न प्रकार से 2 श्रेणियां बना सकते हैं
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)
जब आप सभी श्रेणियों को खोजना चाहते हैं
db.category.find()
जब आपको किसी श्रेणी में सभी उत्पाद ढूंढने हों, तो श्रेणी _id
. का उपयोग करेंdb.products.find({ cateogry: _id})
जब आपको किसी श्रेणी, और उप श्रेणी में सभी उत्पादों को खोजने की आवश्यकता हो
db.products.find({ category: _id, subcategory: 'salon' }) //or subcategory_id
जब आपको किसी एक उत्पाद को खोजने की आवश्यकता हो
db.products.findOne({ _id }) //with the product_id
जब आप किसी उत्पाद को नाम से खोजना चाहते हैं
db.products.find({ name: { $regex : 'some search term', $option: 'i' } }) // where search term can be part of the product name
जब आप बीएमडब्ल्यू वाली सभी श्रेणियां ढूंढना चाहते हैं
db.products.aggregate([
{
$match: { "attributes.model": "BMW"
},
{
$group: { _id: "$category" }
}
])
एक बार जब आप डेटाबेस बनाना शुरू कर देते हैं, तो आप एकत्रीकरण के साथ-साथ जावास्क्रिप्ट के साथ अपने डीबी के लिए विचार बनाने के लिए आगे बढ़ते हैं। (कि आप एक अलग स्टैक ओवरफ्लो प्रश्न बना सकते हैं)
उपरोक्त डेटा संरचना और उदाहरण क्वेरी आपके "उन्नत फ़िल्टरिंग" को संभालने के लिए पर्याप्त होनी चाहिए