Mongodb tập hợp tìm trong mảng
Để biết chi tiết về toán tử cụ thể, bao gồm cú pháp và ví dụ, hãy nhấp vào toán tử cụ thể để chuyển đến trang tham chiếu của toán tử đó Show
← $meta (tập hợp) $arrayElemAt (tập hợp) → © MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc Bài viết này hướng dẫn về cách sử dụng đối sánh tổng hợp MongoDB trong một mảng với sự trợ giúp của các mã ví dụ. Chúng ta sẽ khám phá các ví dụ khác nhau bằng cách sử dụng mảng kiểu chuỗi và mảng kiểu số Chúng ta đã học cách sử dụng giai đoạn tổng hợp so khớp với các toán tử so sánh, toán tử 4/ 5 và giai đoạn 6/ 7. Bạn có thể tìm thấy bài báo đó ở đâyỞ đây, chúng tôi tập trung vào việc tìm hiểu đối sánh tổng hợp MongoDB trong một mảng để tìm tài liệu phù hợp. Để tạo một bộ sưu tập có ít nhất một trường chứa một mảng Bạn có thể tận dụng các lệnh dưới đây để làm theo cùng với chúng tôi Mã ví dụ
đầu ra
Sử dụng { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] } { "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] } { "_id" : "gh03", "courses" : [ "JavaScript", "Angular" ], "results" : [ 8, 9 ] } { "_id" : "rt04", "courses" : [ "Data Science", "Python" ], "results" : [ 2, 5 ] } 8 Với { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] } { "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] } { "_id" : "gh03", "courses" : [ "JavaScript", "Angular" ], "results" : [ 8, 9 ] } { "_id" : "rt04", "courses" : [ "Data Science", "Python" ], "results" : [ 2, 5 ] } 9 để tìm các tài liệu phù hợp trong một mảng trong MongoDBMã ví dụ ________số 8_______đầu ra
Đoạn mã này sử dụng 8 với 1 để cho phép chúng tôi sử dụng trong ngôn ngữ truy vấn. Ở đây, 1 xây dựng biểu thức truy vấn so sánh các trường từ các tài liệu chính xác trong giai đoạn 8Hơn nữa, toán tử 9 chọn những tài liệu có mảng 5 chứa 6 làm phần tử mảng. Để kiểm tra nhiều giá trị trong mảng đã chỉ định, hãy sử dụng truy vấn theo cách sauMã ví dụ
đầu ra
Ví dụ này chỉ chọn những tài liệu mà mảng 5 có hoặc là 6 hoặc là 9 (hoặc là cả hai). Tương tự, chúng ta có thể làm việc với một mảng sốMã ví dụ
đầu ra
Truy vấn này chỉ truy xuất những tài liệu mà mảng 0 chứa hoặc là 1 hoặc là 2 (hoặc cả hai)Mã ví dụ
đầu ra
Ở đây, chúng tôi chỉ chọn những tài liệu có tổng tất cả các phần tử của mảng 0 lớn hơn 4Sử dụng { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] } { "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] } { "_id" : "gh03", "courses" : [ "JavaScript", "Angular" ], "results" : [ 8, 9 ] } { "_id" : "rt04", "courses" : [ "Data Science", "Python" ], "results" : [ 2, 5 ] } 8 Với { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] } { "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] } 6 để tìm tài liệu phù hợp trong một mảng trong MongoDBMã ví dụ 0đầu ra 1Ở đây, chúng tôi sử dụng toán tử 6 để chỉ lấy những phần tử mà mảng 5 chứa chính xác mảng như chúng tôi chỉ định với toán tử 6Sử dụng { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] } { "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] } { "_id" : "gh03", "courses" : [ "JavaScript", "Angular" ], "results" : [ 8, 9 ] } { "_id" : "rt04", "courses" : [ "Data Science", "Python" ], "results" : [ 2, 5 ] } 8 Với db.student_courses.aggregate({ $match:{ courses:{ $in: ['Java', 'Python']} } }); 1 để tìm các tài liệu phù hợp trong một mảng trong MongoDBMã ví dụ 2đầu ra
1 tương đương với toán tử 4. Mã này truy xuất tất cả các tài liệu trong đó mảng 5 chứa tất cả các phần tử được chỉ định cho toán tử 1
Làm cách nào để khớp dữ liệu trong mảng trong MongoDB?Toán tử $elemMatch so khớp các tài liệu chứa trường mảng với ít nhất một phần tử khớp với tất cả các tiêu chí truy vấn đã chỉ định . Nếu bạn chỉ xác định một điều kiện
Làm cách nào để tìm giá trị trong mảng đối tượng trong MongoDB?Để tìm kiếm mảng đối tượng trong MongoDB, bạn có thể sử dụng toán tử $elemMatch . Toán tử này cho phép chúng ta tìm kiếm nhiều hơn một thành phần từ một đối tượng mảng.
Làm cách nào để tìm các đối tượng lồng nhau trong MongoDB?Truy cập tài liệu nhúng/lồng nhau –
. using dot notation and when you are using dot notation, then the field and the nested field must be inside the quotation marks.
Làm cách nào để so sánh mảng đối tượng trong MongoDB?Bạn có thể sử dụng toán tử mảng tổng hợp như $filter hoặc $reduce để so sánh các phần tử mảng và trả về kết quả. Các toán tử mảng này hoạt động giống như các trình lặp (như lặp trong vòng lặp for trên trường mảng JavaScript hoặc Java). Xem các ví dụ về hai toán tử trong Hướng dẫn sử dụng MongoDB. |