Tài liệu về nhà → đi → Go
Trong hướng dẫn này, bạn có thể tìm hiểu làm thế nào để có được số lượng chính xác và ước tính số lượng tài liệu trong bộ sưu tập của bạn.accurate and estimated count of the number of documents in your collection.
Để chạy các ví dụ trong hướng dẫn này, hãy tải dữ liệu mẫu vào bộ sưu tập tea.ratings với đoạn trích sau:
coll := client.Database("tea").Collection("ratings") |
docs := []interface{}{ |
bson.D{{"type", "Masala"}, {"rating", 10}}, |
bson.D{{"type", "Matcha"}, {"rating", 7}}, |
bson.D{{"type", "Assam"}, {"rating", 4}}, |
bson.D{{"type", "Oolong"}, {"rating", 9}}, |
bson.D{{"type", "Chrysanthemum"}, {"rating", 5}}, |
bson.D{{"type", "Earl Grey"}, {"rating", 8}}, |
bson.D{{"type", "Jasmine"}, {"rating", 3}}, |
bson.D{{"type", "English Breakfast"}, {"rating", 6}}, |
bson.D{{"type", "White Peony"}, {"rating", 4}}, |
} |
result, err := coll.InsertMany(context.TODO(), docs) |
if err != nil { |
panic(err) |
} |
fmt.Printf("Number of documents inserted: %d\n", len(result.InsertedIDs)) |
Mẹo
Cơ sở dữ liệu và bộ sưu tập không tồn tại
Nếu cơ sở dữ liệu và bộ sưu tập cần thiết không tồn tại khi bạn thực hiện thao tác ghi, máy chủ sẽ ngầm tạo chúng.
Mỗi tài liệu chứa xếp hạng cho một loại trà tương ứng với các trường type và rating.
Để đếm số lượng tài liệu phù hợp với bộ lọc truy vấn của bạn, hãy sử dụng phương thức CountDocuments().
Mẹo
Cơ sở dữ liệu và bộ sưu tập không tồn tại
Nếu cơ sở dữ liệu và bộ sưu tập cần thiết không tồn tại khi bạn thực hiện thao tác ghi, máy chủ sẽ ngầm tạo chúng.
Mỗi tài liệu chứa xếp hạng cho một loại trà tương ứng với các trường type và rating.
| Bạn có thể sửa đổi hành vi của CountDocuments() bằng cách chuyển theo loại CountOptions. Nếu bạn không chỉ định bất kỳ tùy chọn nào, trình điều khiển sử dụng các giá trị mặc định của nó. Loại CountOptions cho phép bạn định cấu hình các tùy chọn với các phương thức sau: | |||||||
| Phương pháp Loại CountOptions cho phép bạn định cấu hình các tùy chọn với các phương thức sau: | |||||||
| Phương pháp Sự mô tả | |||||||
| Loại đối chiếu ngôn ngữ để sử dụng khi sắp xếp kết quả. Loại CountOptions cho phép bạn định cấu hình các tùy chọn với các phương thức sau: | |||||||
| Phương pháp Sự mô tả |
Loại đối chiếu ngôn ngữ để sử dụng khi sắp xếp kết quả.
filter := bson.D{{"rating", bson.D{{"$lt", 6}}}} |
count, err := coll.CountDocuments(context.TODO(), filter) |
if err != nil { |
panic(err) |
} |
fmt.Printf("Number of ratings less than six: %d\n", count) |
Mặc định:
filter := bson.D{{"rating", bson.D{{"$lt", 6}}}} |
count, err := coll.CountDocuments(context.TODO(), filter) |
if err != nil { |
panic(err) |
} |
fmt.Printf("Number of ratings less than six: %d\n", count) |
Chỉ số để sử dụng để quét các tài liệu để đếm.
Số lượng tài liệu tối đa để đếm.
Mặc định:
6filter := bson.D{{"rating", bson.D{{"$lt", 6}}}} count, err := coll.CountDocuments(context.TODO(), filter) if err != nil { panic(err) } fmt.Printf("Number of ratings less than six: %d\n", count)
matchStage := bson.D{{"$match", bson.D{{"rating", bson.D{{"$gt", 5}}}}}} |
countStage := bson.D{{"$count", "total_documents"}} |
cursor, err := coll.Aggregate(context.TODO(), mongo.Pipeline{matchStage, countStage}) |
if err != nil { |
panic(err) |
} |
var results []bson.D |
if err = cursor.All(context.TODO(), &results); err != nil { |
panic(err) |
} |
for _, result := range results { |
fmt.Println(result) |
} |
Lượng thời gian tối đa mà truy vấn có thể chạy trên máy chủ.
Số lượng tài liệu cần bỏ qua trước khi đếm.
Ví dụ sau đếm số lượng tài liệu trong đó rating nhỏ hơn
matchStage := bson.D{{"$match", bson.D{{"rating", bson.D{{"$gt", 5}}}}}} |
countStage := bson.D{{"$count", "total_documents"}} |
cursor, err := coll.Aggregate(context.TODO(), mongo.Pipeline{matchStage, countStage}) |
if err != nil { |
panic(err) |
} |
var results []bson.D |
if err = cursor.All(context.TODO(), &results); err != nil { |
panic(err) |
} |
for _, result := range results { |
fmt.Println(result) |
} |
Bạn cũng có thể bao gồm giai đoạn đếm $ để đếm số lượng tài liệu trong một đường ống tổng hợp.
Ví dụ sau thực hiện các hành động sau:
| Loại đối chiếu ngôn ngữ để sử dụng khi sắp xếp kết quả. Loại CountOptions cho phép bạn định cấu hình các tùy chọn với các phương thức sau: |
Phương pháp
count, err := coll.EstimatedDocumentCount(context.TODO()) |
if err != nil { |
panic(err) |
} |
fmt.Printf("Estimated number of documents in the ratings collection: %d\n", count) |
Sự mô tả
Loại đối chiếu ngôn ngữ để sử dụng khi sắp xếp kết quả.
Mặc định:
2filter := bson.D{{"rating", bson.D{{"$lt", 6}}}} count, err := coll.CountDocuments(context.TODO(), filter) if err != nil { panic(err) } fmt.Printf("Number of ratings less than six: %d\n", count) Chỉ số để sử dụng để quét các tài liệu để đếm.
Số lượng tài liệu tối đa để đếm.
Mặc định:
filter := bson.D{{"rating", bson.D{{"$lt", 6}}}} |
count, err := coll.CountDocuments(context.TODO(), filter) |
if err != nil { |
panic(err) |
} |
fmt.Printf("Number of ratings less than six: %d\n", count) |
CountDocuments()
Lượng thời gian tối đa mà truy vấn có thể chạy trên máy chủ.
EstimatedDocumentCount()
Số lượng tài liệu cần bỏ qua trước khi đếm.