Để 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ử đó
NameDescrip Trả về phần tử tại chỉ số mảng đã chỉ định. Nối các mảng để trả về mảng được nối. Chọn một tập hợp con của mảng để trả về một mảng chỉ có các phần tử khớp với điều kiện lọc. Tìm kiếm một mảng cho lần xuất hiện của một giá trị đã chỉ định và trả về chỉ mục mảng của lần xuất hiện đầu tiên. Nếu không tìm thấy chuỗi con, trả về -1Xác định nếu toán hạng là một mảng. Trả về một boolean. Xuất ra một mảng chứa một chuỗi các số nguyên theo đầu vào do người dùng xác định. Trả về một mảng với các phần tử theo thứ tự đảo ngược. Áp dụng một biểu thức cho từng phần tử trong một mảng và kết hợp chúng thành một giá trị duy nhất. Trả về số phần tử trong mảng. Chấp nhận một biểu thức duy nhất làm đối số. Trả về một tập hợp con của một mảng. Hợp nhất hai danh sách lại với nhau. Trả về một giá trị boolean cho biết liệu một giá trị đã chỉ định có trong một mảng hay không- $arrayElemAt [tổng hợp]
- $concatArrays [tổng hợp]
- $filter [tổng hợp]
- $indexOfArray [tổng hợp]
- $isArray [tổng hợp]
- phạm vi $ [tổng hợp]
- $reverseArray [tổng hợp]
- $reduce [tổng hợp]
- $size [tổng hợp]
- $slice [tổng hợp]
- $zip [tổng hợp]
- $in [tổng hợp]
← $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ử
{ "_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 ] }
4/{ "_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 ] }
5 và giai đoạn { "_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 ] }
6/{ "_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 ] }
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ụ
db.createCollection['student_courses'];
db.student_courses.insertMany[[
{"_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]}
]];
db.student_courses.find[];
đầu ra
{ "_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 ] }
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 MongoDB
{ "_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 ] }
{ "_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 ] }
Mã ví dụ
________số 8_______đầu ra
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
Đoạn mã này 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 db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
1 để cho phép chúng tôi sử dụng trong ngôn ngữ truy vấn. Ở đây, db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
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 { "_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 ] }
8Hơn nữa, toán tử
{ "_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 chọn những tài liệu có mảng db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
5 chứa db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
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ụ
db.student_courses.aggregate[{
$match:{
courses:{ $in: ['Java', 'Python']}
}
}];
đầu ra
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
{ "_id" : "rt04", "courses" : [ "Data Science", "Python" ], "results" : [ 2, 5 ] }
Ví dụ này chỉ chọn những tài liệu mà mảng
db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
5 có hoặc là db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
6 hoặc là db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
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ụ
db.student_courses.aggregate[{
$match:{
results:{ $in: [3,6]}
}
}];
đầu ra
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
Truy vấn này chỉ truy xuất những tài liệu mà mảng
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
0 chứa hoặc là { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
1 hoặc là { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
2 [hoặc cả hai]Mã ví dụ
db.student_courses.aggregate[{
$match:{
$expr:{ $gt: [{$sum: "$results"}, 10]}
}
}];
đầu ra
{ "_id" : "gh03", "courses" : [ "JavaScript", "Angular" ], "results" : [ 8, 9 ] }
Ở đâ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
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
0 lớn hơn { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
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 MongoDB
{ "_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 ] }
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
Mã ví dụ
{ "_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 ] }
0đầu ra
{ "_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 ] }
1Ở đây, chúng tôi sử dụng toán tử
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
6 để chỉ lấy những phần tử mà mảng db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
5 chứa chính xác mảng như chúng tôi chỉ định với toán tử { "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
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 MongoDB
{ "_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 ] }
db.student_courses.aggregate[{
$match:{
courses:{ $in: ['Java', 'Python']}
}
}];
Mã ví dụ
{ "_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 ] }
2đầu ra
{ "_id" : "ma01", "courses" : [ "Java", "Python", "Databases" ], "results" : [ 3, 5 ] }
{ "_id" : "sd02", "courses" : [ "Java", "Python" ], "results" : [ 6, 3 ] }
db.student_courses.aggregate[{
$match:{
courses:{ $in: ['Java', 'Python']}
}
}];
1 tương đương với toán tử { "_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 ] }
4. Mã này truy xuất tất cả các tài liệu trong đó mảng db.student_courses.aggregate[{
$match:{
$expr:{ $in: ['Java', "$courses"]}
}
}];
5 chứa tất cả các phần tử được chỉ định cho toán tử db.student_courses.aggregate[{
$match:{
courses:{ $in: ['Java', 'Python']}
}
}];
1