sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB/JS - Pokročilé vyhledávání podle tváří - Jak získat pouze relevantní kategorie/hodnoty

V podstatě můžete vytvořit 2 kategorie následovně

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)

Když chcete najít všechny kategorie

db.category.find()

Pokud potřebujete najít všechny produkty v kategorii, použijte Category _id

db.products.find({ cateogry: _id})

Když potřebujete najít všechny produkty v kategorii A podkategorii

db.products.find({ category: _id, subcategory: 'salon' }) //or subcategory_id

Když potřebujete najít jeden produkt

db.products.findOne({ _id }) //with the product_id

Když chcete najít produkt podle názvu

db.products.find({ name: { $regex : 'some search term', $option: 'i' } }) // where search term can be part of the product name

Když chcete najít všechny kategorie, které obsahují BMW

db.products.aggregate([
    {
       $match: { "attributes.model": "BMW"
     },
     {
        $group: { _id: "$category" }
      }
])

Jakmile začnete vytvářet databázi, přejdete k vytváření pohledů pro vaši db s agregací a také pomocí javascriptu. (že můžete vytvořit samostatnou otázku stackoverflow)

Výše uvedená struktura dat a příklady dotazů by měly být dostatečné pro zpracování vašeho "pokročilého filtrování"




  1. jarní data mongodb skupina podle

  2. Jak najít hodinový rozdíl mezi dvěma daty v mongodb

  3. Serializace typů neměnných hodnot pomocí ovladače Mongo C#

  4. Spuštění mongod.service se nezdařilo:Jednotka mongod.service nenalezena