基本的に、次のように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()
カテゴリ内のすべての商品を検索する必要がある場合は、Category _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
BMWを含むすべてのカテゴリーを検索したい場合
db.products.aggregate([
{
$match: { "attributes.model": "BMW"
},
{
$group: { _id: "$category" }
}
])
データベースの作成を開始したら、次に、集計を使用したデータベースのビューの作成とjavascriptに進みます。 (別のstackoverflow質問を作成できます)
上記のデータ構造とクエリ例は、「高度なフィルタリング」を処理するのに十分なはずです