MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB / JS - Tìm kiếm nhiều khía cạnh nâng cao - Cách chỉ lấy các danh mục / giá trị có liên quan

Ở mức cơ bản, bạn có thể tạo 2 danh mục như sau

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)

Khi bạn muốn tìm tất cả các danh mục

db.category.find()

Khi bạn cần tìm tất cả các sản phẩm trong một danh mục, hãy sử dụng Category _id

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

Khi bạn cần tìm tất cả các sản phẩm trong một danh mục VÀ danh mục phụ

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

Khi bạn cần tìm một sản phẩm duy nhất

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

Khi bạn muốn tìm một sản phẩm theo tên

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

Khi bạn muốn tìm tất cả các danh mục chứa BMW

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

Khi bạn đã bắt đầu tạo cơ sở dữ liệu, sau đó bạn chuyển sang tạo các khung nhìn cho db của mình bằng tính năng tổng hợp, cũng như javascript. (bạn có thể tạo một câu hỏi ngăn xếp chồng chéo riêng biệt)

Cấu trúc dữ liệu ở trên và các truy vấn mẫu phải đủ để xử lý "lọc nâng cao"

của bạn


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Loại bỏ các mục nhập mảng có chứa một mảng trống

  2. Làm thế nào để sắp xếp trong mongoose?

  3. Cơ sở dữ liệu trên 2GB trong MongoDB

  4. Truy vấn theo kiểu mảng - MongoDB

  5. Cuộc chiến của các cơ sở dữ liệu NoSQL - So sánh MongoDB và Oracle NoSQL