Nhóm hoạt động như thế nào trong MongoDB?

Trong hướng dẫn MongoDB này, Chúng ta sẽ tìm hiểu “Làm thế nào để nhóm MongoDB theo số đếm hoạt động”. Chúng tôi cũng sẽ đề cập đến điều này với các hoạt động và ví dụ khác nhau. Đây là những chủ đề sau đây mà chúng ta sẽ đề cập trong hướng dẫn này

  • một hoạt động tổng hợp là gì?
  • Nhóm MongoDB theo số lượng
  • Nhóm MongoDB theo sắp xếp đếm
  • Nhóm MongoDB theo số lượng nhiều trường
  • Nhóm MongoDB theo số lượng lớn hơn 1 (bất kỳ số nào)
  • Nhóm MongoDB theo số lượng khác biệt
  • Nhóm MongoDB theo số trận đấu
  • Nhóm MongoDB theo số lượng có
  • Nhóm MongoDB theo ngày và số lượng
  • Nhóm MongoDB theo bộ lọc đếm
  • Nhóm MongoDB theo số lượng ở đâu
  • Nhóm MongoDB theo mảng đếm
  • Nhóm MongoDB và đếm với điều kiện

Mục lục

một hoạt động tổng hợp là gì?

Đây là một hoạt động được sử dụng để xử lý dữ liệu và nó bao gồm các giai đoạn thực hiện một số thao tác trên dữ liệu được nhóm để trả về một kết quả duy nhất

Có 3 cách để thực hiện phép toán tổng hợp

  • đường ống tổng hợp

Tài liệu nhập vào một quy trình nhiều giai đoạn để chuyển đổi tài liệu thành kết quả tổng hợp. Quy trình tổng hợp MongoDB bao gồm các giai đoạn

Thí dụ

db.collection_name.aggregate([

   //First stage
   { $match: { status: "" } },

   //Second stage
   { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
 
   //Third Stage
    { $sort : {sort_field: -1 }}
   
])

Giai đoạn đầu. Giai đoạn $match xử lý tài liệu theo trường trạng thái

Giai đoạn thứ hai. giai đoạn nhóm $ thu thập tài liệu theo trường _id và tính toán số lượng trường duy nhất

giai đoạn cuối. Trong giai đoạn cuối, chúng tôi cung cấp các công cụ để nhóm và sắp xếp tài liệu theo trường

  • Chức năng thu nhỏ bản đồ
  • Phương pháp tổng hợp mục đích duy nhất

cú pháp

>db.collection_name.aggregate(aggregate_operation)

Đọc MongoDB sắp xếp theo ngày

Nhóm hoạt động như thế nào trong MongoDB?
Nhóm hoạt động như thế nào trong MongoDB?
Nhóm MongoDB theo ví dụ đếm

Nhóm MongoDB theo số lượng

Trong MongoDB, trường _id của mỗi tài liệu đã cung cấp một nhóm duy nhất theo giá trị. Hoạt động tổng hợp xử lý dữ liệu và trả về kết quả được tính toán

cú pháp

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])

Thí dụ

Trong ví dụ này, chúng tôi đã lưu trữ một số tài liệu vào bộ sưu tập dữ liệu và bạn có thể truy cập tài liệu bằng phương thức find()

> db.data.find().pretty()
{"_id": 1, "name": "Smith", "class": 11, "subject": "Science/Maths"}
{"_id": 2, "name": "Tom", "class": 12, "subject": "Arts"}
{"_id": 3, "name": "Adam", "class": 12, "Branch": "Commerce/Maths"}

Với sự trợ giúp của hoạt động tổng hợp, sử dụng $group và $count chúng tôi đếm số lượng tài liệu trong bộ sưu tập dữ liệu

> db.data.aggregate([ {$group:{_id:null, count:{$count:{}}}}])
{ "_id" : null, "count" : 3 }

Trong ví dụ này, bạn đã học cách hoạt động của "nhóm theo số lượng" trong MongoDB và đây là ví dụ đơn giản nhất về cách đếm bằng cách sử dụng nhóm theo

Đọc MongoDB sắp xếp theo lĩnh vực

Nhóm MongoDB theo sắp xếp đếm

Trong nhóm này theo chủ đề sắp xếp theo số lượng, chúng tôi sử dụng $sortByCount tương đương với $group + $sort. Sử dụng điều này, chúng ta có thể sắp xếp và đếm một nhóm cụ thể theo thứ tự tăng dần và giảm dần

cú pháp

{ $group: { _id: , count: { $sum: 1 } } },
{ $sort: { count: -1 } }

Thí dụ

Trong ví dụ này, chúng tôi đã lưu trữ một số tài liệu vào bộ sưu tập dữ liệu và sử dụng phương thức find() để truy cập xem có bao nhiêu tài liệu trong bộ sưu tập của chúng tôi

> db.data.find().pretty()
{
        "_id" : ObjectId("611a99100a3322fc1bd8c38b"),
        "fname" : "Tom",
        "city" : "United States of America",
        "courses" : [
                "c#",
                "asp",
                "node"
        ]
}
{
        "_id" : ObjectId("611a99340a3322fc1bd8c38c"),
        "fname" : "Harry",
        "city" : "Canada",
        "courses" : [
                "python",
                "asp",
                "node"
        ]
}
{
        "_id" : ObjectId("611a99510a3322fc1bd8c38d"),
        "fname" : "Mikky",
        "city" : "New Zealand",
        "courses" : [
                "python",
                "asp",
                "c++"
        ]
}
{
        "_id" : ObjectId("611b3e88a60b5002406571c3"),
        "fname" : "Ron",
        "city" : "United Kingdom",
        "courses" : [
                "python",
                "django",
                "node"
        ]
}

Trong bước tiếp theo, chúng tôi giải phóng mảng khóa học và sử dụng $sortByCount để đếm số lượng tài liệu được thêm vào mỗi khóa học

> db.data.aggregate( [ { $unwind: "$courses" },  
                       { $sortByCount: "$courses" } 
                    ] )
{ "_id" : "node", "count" : 3 }
{ "_id" : "python", "count" : 3 }
{ "_id" : "asp", "count" : 3 }
{ "_id" : "c#", "count" : 1 }
{ "_id" : "django", "count" : 1 }
{ "_id" : "c++", "count" : 1 }

Đây là cách nhóm đơn giản nhất bằng cách đếm mảng và sắp xếp chúng trong MongoDB

Đọc Tạo bảng trong MongoDB

Nhóm MongoDB theo số lượng nhiều trường

Trong MongoDB để đếm nhiều trường, chúng ta sử dụng hàm aggregation(). Ở đây, $count được sử dụng để đếm các trường

Thí dụ

Trong ví dụ này, chúng tôi đã lưu trữ một số tài liệu trong bộ sưu tập của sinh viên và sử dụng phương thức find() để kiểm tra xem có bao nhiêu tài liệu trong bộ sưu tập của chúng tôi

________số 8

Ở đây, chúng tôi lấy hai trường (tên và dấu thời gian). bạn cũng có thể lấy nhiều trường hơn và đếm số lượng dấu thời gian trong tài liệu

> db.student.aggregate([ {$group: {_id: {name:"$name",                       
                                         timestamp:"$timestamp" }}},          
                                        {$count:"timestamp"} 
                      ])

{ "timestamp" : 6 }

Đây là cách nhóm theo số lượng bằng cách lấy nhiều trường trong MongoDB. Bạn có thể lấy nhiều trường theo yêu cầu của bạn

Đọc Ưu và nhược điểm của MongoDB

Nhóm MongoDB theo số lượng lớn hơn 1 (bất kỳ số nào)

Trong chủ đề này, bạn sẽ học cách nhóm theo số lượng một cột cụ thể lớn hơn 1 (bạn có thể lấy bất kỳ số nào ở đây)

Thí dụ

Đây là một số tài liệu chúng tôi đã chèn vào bộ sưu tập nhãn hiệu

>db.collection_name.aggregate(aggregate_operation)
0

bạn có thể truy cập các tài liệu bằng cách sử dụng phương thức find()

>db.collection_name.aggregate(aggregate_operation)
1

Trong bước tiếp theo, chúng tôi áp dụng điều kiện và đếm pass_score, có điểm lớn hơn 70 bằng cách sử dụng thao tác tổng hợp

>db.collection_name.aggregate(aggregate_operation)
2

Bạn có thể thấy trong kết quả, chỉ có 5 bản ghi trong số 6 bản ghi có số điểm lớn hơn 70

Đây là cách đếm số lượng tài liệu lớn hơn một số cụ thể trong MongoDB

Nhóm MongoDB theo số lượng khác biệt

Trong chủ đề này, bạn sẽ học cách chọn các bộ dữ liệu riêng biệt từ các tài liệu cụ thể và đếm chúng

Thí dụ

Chúng tôi đã chèn một số tài liệu vào bộ sưu tập demo. Bạn có thể kiểm tra nó bằng cách sử dụng phương thức find()

>db.collection_name.aggregate(aggregate_operation)
3

Ở đây trước tiên, chúng tôi thư giãn cột chi tiết. sau đó đếm Tên và Nhãn riêng biệt và tất cả những thứ này chúng tôi lưu trữ vào một biến a

>db.collection_name.aggregate(aggregate_operation)
4

Bây giờ, bạn có thể dễ dàng hiển thị kết quả bằng thao tác tổng hợp tạo ra đầu ra sau

>db.collection_name.aggregate(aggregate_operation)
5

Trong chủ đề này, bạn đã học cách nhóm theo số đếm các cột riêng biệt hoạt động trong MongoDB và bạn hiểu cách đếm các cột riêng biệt

Nhóm MongoDB theo số trận đấu

Với sự trợ giúp của đối sánh, chúng tôi lọc các tài liệu để chỉ chuyển các tài liệu phù hợp với điều kiện của chúng tôi

cú pháp

>db.collection_name.aggregate(aggregate_operation)
6

Lưu ý rằng $match không chấp nhận các biểu thức tổng hợp thô. Giống như NOW, CLUSTER_TIME, ROOT, CURRENT, REMOVE, v.v. Nếu bạn muốn sử dụng các biến này thì bạn phải thêm $$ vào tiền tố tên biến

Thí dụ

Trong ví dụ này, đây là một số tài liệu mà chúng tôi đã chèn vào bộ sưu tập hàng tồn kho

>db.collection_name.aggregate(aggregate_operation)
7

chúng tôi thực hiện khớp đẳng thức bằng cách sử dụng thao tác $match và chỉ cần hiển thị kết quả có số lượng (số lượng) là 300

>db.collection_name.aggregate(aggregate_operation)
8

Trong chủ đề này, bạn đã học cách thực hiện khớp đẳng thức và chỉ những tài liệu thỏa mãn điều kiện trong MongoDB

Nhóm MongoDB theo số lượng có

Trong nhóm chủ đề theo số lượng có hoàn toàn phụ thuộc vào yêu cầu câu hỏi. ví dụ. bạn muốn hiển thị một học sinh có mặt hàng cụ thể này, tuổi của học sinh lớn hơn số này (bất kỳ số nào), mặt hàng có số lượng nhiều như vậy, v.v.

Ở đây chúng tôi đang lấy một ví dụ và chỉ hiển thị những tài liệu có số tiền “totalSaleAmount” nhiều như vậy

ví dụ

Đây là một số tài liệu mà chúng tôi đã chèn vào bộ sưu tập bán hàng

>db.collection_name.aggregate(aggregate_operation)
9

Bạn có thể truy cập tài liệu bằng cách sử dụng phương thức find()

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
0

Ở đây, Đối với nhóm theo số lượng có điều kiện, chúng tôi lấy giá và số lượng ở hai cột nhân hai cột này và tính tổng, sau đó, chúng tôi sử dụng bộ lọc “$match” và chỉ hiển thị những tài liệu có điều kiện TotalSaleAmount lớn hơn 100

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
1

Ở đầu ra, bạn chỉ thấy hai mặt hàng có tổngSaleAmount lớn hơn 100. Bằng cách này, bạn có thể dễ dàng sử dụng có và hiển thị kết quả duy nhất mà bạn muốn truy xuất

Trong chủ đề này, bạn đã học cách truy xuất tài liệu bằng cách sử dụng có(điều kiện) trong MongoDB. Bạn có thể làm điều này một cách dễ dàng theo yêu cầu câu hỏi

Nhóm MongoDB theo ngày và số lượng

Đôi khi, chúng tôi chỉ muốn đếm một tài liệu có ngày cụ thể và đối với điều này, bạn có thể sử dụng tổng hợp số đếm và đếm một tài liệu có ngày cụ thể

Thí dụ

Trong ví dụ này, bạn sẽ học cách tính tổng số tiền bán hàng và số lượng bán hàng cho mỗi ngày trong năm 2021

Chúng tôi đã chèn một số trường id sản phẩm, tên mặt hàng, giá, số lượng và ngày vào bộ sưu tập bán hàng. Bạn có thể truy xuất tài liệu bằng cách sử dụng phương thức find()

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
0

Sau đó, chúng tôi sử dụng thao tác tổng hợp để lấy dữ liệu dưới dạng nhóm theo ngày và đếm

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
3

Ở đầu ra, bạn có thể thấy Ngày, TotalSaleAmount và số lượng được truy xuất theo thứ tự giảm dần bằng cách sử dụng sắp xếp tổng hợp

Nhóm MongoDB theo bộ lọc đếm

Trong MongoDB, bộ lọc nhóm theo số lượng sử dụng khi chúng tôi muốn áp dụng bất kỳ bộ lọc nào trên tài liệu. Giống như, các tài liệu có giá lớn hơn giá này (bất kỳ số nào) và điều này sẽ chỉ hiển thị những tài liệu cụ thể đó

Thí dụ

Trong ví dụ này, chúng tôi đã lưu trữ một số tài liệu trong bộ sưu tập sản phẩm và truy xuất tài liệu với sự trợ giúp của hàm find()

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
4

Bước tiếp theo ta áp dụng thao tác tổng hợp và lọc tài liệu theo yêu cầu câu hỏi

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
5

Bạn có thể thấy trong đầu ra, chúng tôi đã lọc kết quả và chỉ hiển thị những tài liệu có giá mặt hàng lớn hơn 120

Nhóm MongoDB theo số lượng ở đâu

Nếu bạn muốn đếm các tài liệu cụ thể bằng cách sử dụng điều kiện và điều kiện có thể là bất kỳ thứ gì theo yêu cầu của câu hỏi. Bạn sẽ hiểu rõ hơn với sự trợ giúp của các ví dụ

Thí dụ

Trong ví dụ này, chúng ta sẽ chỉ tính những mặt hàng có số lượng mặt hàng lớn hơn 5. chúng tôi đã lưu trữ một số tài liệu trong bộ sưu tập bán hàng và bạn có thể truy cập tài liệu bằng cách sử dụng phương thức find()

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
6

Ở đây, chúng tôi đang sử dụng tổng hợp $match để hiển thị khi số lượng lớn hơn 5 và sử dụng tổng hợp $count để đếm số lượng mặt hàng

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
7

Đây là cách đếm sử dụng điều kiện where trong MongoDB. Bạn có thể thực hiện việc này bằng các thao tác tổng hợp khác nhau theo yêu cầu của câu hỏi

Nhóm MongoDB theo mảng đếm

Trong MongoDB, chúng tôi đã lưu trữ một mảng tài liệu trong bộ sưu tập và trong chủ đề này, bạn sẽ tìm hiểu cách nhóm theo mảng đếm trong MongoDB

Thí dụ

Trong ví dụ này, chúng tôi đã lưu trữ một số trường tên mặt hàng, giá và số lượng trong bộ sưu tập giá

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
8

Ở đây, chúng tôi đang đếm mục bằng cách sử dụng thao tác tổng hợp $group và $count

db.collection_name.aggregate([
            {$group: {_id:_id: , count:{ $count: {}}}}
])
9

Đây là cách đếm các nhóm theo tài liệu mảng trong MongoDB. Đây là cách đơn giản nhất để đếm các trường mảng từ tài liệu

Nhóm MongoDB và đếm với điều kiện

Vài ngày trước, tôi đang làm việc trong một dự án mà tôi gặp lỗi về cách truy xuất các tài liệu cụ thể trong đó tuổi của nhân viên lớn hơn 25. Vì vậy, để giải quyết vấn đề này, tôi đã nghiên cứu thêm về vấn đề này, làm thế nào chúng ta có thể sử dụng “nhóm MongoDB và đếm với điều kiện”

Ở đây tôi đang lấy một ví dụ và điều này có thể giúp bạn hiểu cách bạn có thể áp dụng các điều kiện cho một nhóm trường và cách đếm chúng

Thí dụ

Trong bộ sưu tập sinh viên, chúng tôi đã chèn một số tài liệu và bạn có thể truy cập chúng bằng cách sử dụng phương thức find()

> db.data.find().pretty()
{"_id": 1, "name": "Smith", "class": 11, "subject": "Science/Maths"}
{"_id": 2, "name": "Tom", "class": 12, "subject": "Arts"}
{"_id": 3, "name": "Adam", "class": 12, "Branch": "Commerce/Maths"}
0

Ở đây, chúng tôi cũng sử dụng phương thức pretty() được sử dụng để hiển thị kết quả ở định dạng dễ đọc

Trong bước tiếp theo, chúng tôi áp dụng các hoạt động tổng hợp khác nhau $match, $group và $count và sau khi áp dụng điều kiện, bạn có thể thấy đầu ra chỉ có hai trường có tuổi lớn hơn 25

> db.data.find().pretty()
{"_id": 1, "name": "Smith", "class": 11, "subject": "Science/Maths"}
{"_id": 2, "name": "Tom", "class": 12, "subject": "Arts"}
{"_id": 3, "name": "Adam", "class": 12, "Branch": "Commerce/Maths"}
1

Đây là cách áp dụng điều kiện nhóm và đếm trên tài liệu và đếm tài liệu của một trường cụ thể trong MongoDB

Bạn cũng có thể thích các hướng dẫn MongoDB sau đây

  • MongoDB tắt với mã 100
  • Cách kiểm tra xem MongoDB đã được cài đặt chưa + Phiên bản MongoDB
  • MongoDB sắp xếp theo ngày
  • MongoDB tìm chuỗi chứa
  • Bộ sưu tập thả MongoDB
  • Cách lưu trữ hình ảnh trong MongoDB
  • Nhóm MongoDB theo nhiều trường

Trong hướng dẫn này, chúng ta đã học "MongoDB sắp xếp theo số lượng" bằng cách sử dụng các phương pháp khác nhau với các ví dụ. Đây là những chủ đề sau mà chúng tôi đã đề cập trong hướng dẫn này

  • một hoạt động tổng hợp là gì?
  • Nhóm MongoDB theo số lượng
  • Nhóm MongoDB theo sắp xếp đếm
  • Nhóm MongoDB theo số lượng nhiều trường
  • Nhóm MongoDB theo số lượng lớn hơn 1
  • Nhóm MongoDB theo số lượng khác biệt
  • Nhóm MongoDB theo số trận đấu
  • Nhóm MongoDB theo số lượng có
  • Nhóm MongoDB theo ngày và số lượng
  • Nhóm MongoDB theo bộ lọc đếm
  • Nhóm MongoDB theo số lượng ở đâu
  • Nhóm MongoDB theo mảng đếm
  • Nhóm MongoDB và đếm với điều kiện

Bijay

Tôi là Bijay có hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Trong thời gian này, tôi đã làm việc trên MariaDB và sử dụng nó trong rất nhiều dự án. Hầu hết độc giả của chúng tôi đến từ Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v.

Bạn muốn tìm hiểu MariaDB? . Ngoài ra, tôi là MVP của Microsoft

Nhóm hoạt động như thế nào trong MongoDB?

Nhóm MongoDB by được sử dụng để nhóm dữ liệu từ bộ sưu tập , chúng ta có thể đạt được nhóm theo mệnh đề bằng hàm tổng hợp và phương thức nhóm trong MongoDB. Mặc dù sử dụng hàm tổng hợp với các hoạt động truy vấn nhóm theo mệnh đề nhanh hơn như truy vấn thông thường, nhưng về cơ bản, hàm tổng hợp được sử dụng trong nhiều điều kiện.

Nhóm có sử dụng chỉ mục MongoDB không?

$group không sử dụng dữ liệu chỉ mục .

Sự khác biệt giữa nhóm và dự án trong MongoDB là gì?

$group được sử dụng để nhóm các tài liệu đầu vào theo biểu thức _id đã chỉ định và đối với mỗi nhóm riêng biệt, xuất ra một tài liệu. $project được sử dụng để chuyển các tài liệu có các trường được yêu cầu sang giai đoạn tiếp theo trong quy trình

Toán tử nhóm trong MongoDB là gì?

Toán tử nhóm (còn được gọi là toán tử tích lũy) là toán tử quan trọng trong ngôn ngữ MongoDB, vì nó giúp thực hiện các phép biến đổi dữ liệu khác nhau. It is a part of aggregation in MongoDB. MongoDB is an open-source NoSQL database management program. NoSQL is an alternative to traditional relational databases.