db. thu thập. Phương thức count[] được sử dụng để trả về số lượng tài liệu khớp với truy vấn find[]. db. bộ sưu tập. Phương thức đếm [] không thực hiện thao tác tìm [] mà thay vào đó đếm và trả về số lượng kết quả khớp với truy vấn
cú pháp
db.collection.count[query]
Thông số
Tên Mô tảYêu cầu /
Tùy chọnTypequeryTiêu chí lựa chọn truy vấn. Tài liệu cần thiết
Ghi chú. db. thu thập. phương thức đếm [] tương đương với db. thu thập. tìm [truy vấn]. tính [] xây dựng
Tài liệu mẫu trong bộ sưu tập nhà hàng
{
"address": {
"building": "1007",
"coord": [ -73.856077, 40.848447 ],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
}
.....
Ví dụ. Đếm tất cả tài liệu từ bộ sưu tập
Đếm số lượng tài liệu trong bộ sưu tập nhà hàng
db.restaurants.count[];
đầu ra
> db.restaurants.count[]; 25359
Ví dụ. Đếm tất cả các tài liệu phù hợp với truy vấn
Đếm số tài liệu trong bộ sưu tập nhà hàng có trường phù hợp với ẩm thực là người Mỹ
db.restaurants.find[{"cuisine" : "American "}].count[]
đầu ra
>db.restaurants.find[{"cuisine" : "American "}].count[]; 6183
Thí dụ. Đếm tất cả Tài liệu Phù hợp với Truy vấn sử dụng nhiều hơn tiêu chí
Đếm số tài liệu trong bộ sưu tập nhà hàng lọc với lĩnh vực ẩm thực bằng tiếng Ý và mã zip là 10075
db.restaurants.find[ { "cuisine": "Italian", "address.zipcode": "10075" } ].count[];
đầu ra
> db.restaurants.find[ { "cuisine": "Italian", "address.zipcode": "10075" } ].count[]; 15
Cư xử
Cụm phân mảnh
Trên một cụm phân mảnh, db. bộ sưu tập. count[] có thể dẫn đến số đếm không chính xác nếu tồn tại các tài liệu mồ côi hoặc nếu quá trình di chuyển khối đang diễn ra
Để tránh những tình huống này, trên một cụm được phân đoạn, hãy sử dụng $group giai đoạn của db. thu thập. phương thức tổng hợp [] để $ tổng hợp các tài liệu
Ở trên sẽ tạo bộ sưu tập [hoặc bảng] [nếu bộ sưu tập đã tồn tại, nó sẽ chèn tài liệu vào đó]1. 2] TÌM > Truy vấn tất cả tài liệu của bộ sưu tập bằng phương thức find[]>
db. người lao động. tìm[]
Đầu ra>
{ "_nhận dạng". 1, "Tên". "ank", "lương". 1000}
{ "_Tôi". 2, "Tên". "ank", "lương". 2000 }
{ "_nhận dạng". 3, "Tên". "chảy máu", "tiền lương". 3000}
{ "_nhận dạng". 4, "Tên". "chảy máu", "tiền lương". 4000}
{ "_Tôi". 5, "Tên". "neh", "lương". 5000}
2] Tìm số lượng tất cả nhân viên trong bộ sưu tập trong MongoDB >
2. 1] Chúng tôi sẽ sử dụng phương pháp count[] để tìm số lượng tất cả nhân viên in collection in MongoDB.
db. người lao động. đếm[]
Đầu ra >
5
2. 2] Truy vấn Sql tương đương với truy vấn MongoDB ở trên là >
chọn đếm[*] từ nhân viên;
3] Tìm đếm của tất cả nhân viên = 2000 in collection in MongoDB >
3. 1] Chúng ta sẽ sử dụng các phương thức find[] và count[].
db. Nhân viên. tìm[ { tiền lương. {$gte. 2000} } ]. đếm[]
Đầu ra >
4
3. 2] Chúng ta cũng có thể sử dụng toán tử $count[] để tìm số lượng tất cả nhân viên where salary >= 2000 in collection in MongoDB.
Lưu ý . $count có thể được sử dụng trong MongoDB 3. 4 trở lên.
db. người lao động. tổng hợp[
[
{
$match. {
lương. {
$gte. 2000
}
}
},
{
$count: "firstName"
}
]
]
Đầu ra >
5
3. 3] Truy vấn Sql tương đương với truy vấn MongoDB ở trên là >
chọn số [*] từ nhân viên có lương >= 2000
4] Tổng kết -
Vì vậy, trong hướng dẫn MongoDB này, chúng ta đã học cách sử dụng Phương thức count[] - Cách tìm số lượng tất cả nhân viên trong bộ sưu tập trong MongoDB