sql >> データベース >  >> NoSQL >> MongoDB

MongoDB/JS-高度なファセット検索-関連するカテゴリ/値のみを取得する方法

    基本的に、次のように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質問を作成できます)

    上記のデータ構造とクエリ例は、「高度なフィルタリング」を処理するのに十分なはずです




    1. $ inを使用したMongoDBでの結果の順序?

    2. MongoDBJava3.0ドライバーを使用した一括アップサート

    3. redisテンプレートを使用してRedisからすべてのキーを取得する方法

    4. mongodb phpドライバーをアンインストールし、別のバージョンをインストールします