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ẹoCơ sở dữ liệu và bộ sưu tập không tồn tạiNế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ẹoCơ 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() . | Nếu bạn vượt qua bộ lọc truy vấn trống, phương thức này sẽ trả về tổng số tài liệu trong bộ sưu tập. |
---|
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) |
1
|
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:
| 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) |
3
|
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:
| 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) |
5
|
Phương pháp Sự mô tả
| 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) |
7
|
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:
| 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) |
9
|
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) |
2$count stage to count the number of documents in an aggregation pipeline.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) |
6
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) | } |
2: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:
Để đế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() . | Nếu bạn vượt qua bộ lọc truy vấn trống, phương thức này sẽ trả về tổng số tài liệu trong bộ sưu tập. |
---|
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) |
7
|
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: 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) |
2Chỉ 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) |
6 |