Hướng dẫn toán tử trong mongodb
>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], Ở bài viết trước tôi đã hướng dẫn truy vấn dữ liệu trong MongoDB bao gồm Phần 1 về các trường cơ bản, Phần 2 về các trường embededd/nested. Tiếp tục bài viết này, tôi sẽ hướng dẫn truy vấn dữ liệu trong MongoDB Sử dụng Java Phần 3. Phần này tôi sẽ hướng dẫn truy vấn dữ liệu trên mảng của document (array in document) bao gồm mảng các thuộc tính đơn. Data ExamplesVới data model
Xây dựng data lưu vào database:
Query an Array1. $allĐể truy vấn với điều kiện mảng chứa các phần tử, ta sử dụng 0. Ví dụ dưới đây tìm kiếm document với điều kiện mảng 1 có chứa các phần tử: mongodb, java:
2. $eqĐể truy vấn so sánh toàn bộ danh sách trong một mảng, chúng ta sử dùng toán tử 2. Ví dụ câu lệnh dưới đây document phải thỏa mãn mảng 1 có chính xác 2 phân tử lần lượt là mongodb và java. Thiếu hoặc thừa bất kỳ phần tử nào hoặc không đúng thứ tự thì đều không thỏa mãn:
Để tìm kiếm với điều kiện mảng chứa phần tử với giá trị được chỉ định, ta cũng sự dụng 2:
3. $elemMatchKhi chỉ định kết hợp nhiều điều kiện áp dụng cho mảng, bạn có thể chỉ định truy vấn với 2 cách:
Sự kết hợp của các phần tử trong mảng đáp ứng các điều kiệnVí dụ truy vấn các document với điều kiện các phần từ trong mảng 5 có phần tử lơn hơn 15, có phần nhỏ hơn 25.
Một phần tử trong mảng thỏa mãn tất cả điều kiệnTruy vấn mảng với việc ít nhất một phần tử trong mảng đáp ứng tất cả điều kiện - sử dụng toán tử 6. Ví dụ truy vấn các document với điều kiện ít nhất một phần tử trong mảng 5 phải thỏa mãn lớn hơn 15 và nhỏ hơn 25
4. Index ArrayĐể truy vấn với điều kiện một phần tử trong mảng với vị trí cụ thể, bạn sử dụng ký tự 8 sau đó là vị trí của phần tử (vị trí bắt đầu từ 0).Ví dụ truy vấn các document với phần tử thứ 2 trong mảng 5 bằng 40:
5. $sizeSử dụng 0 để truy vấn số lượng phần tử trong mảng, ví dụ chọn các document mà có mảng có 3 phần tử: |