Ở 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