Để đếm các phần tử mảng từ một trường cụ thể, hãy sử dụng $ size trong MongoDB. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab094d43417811278f588a") } > db.demo723.insertOne({"Subject":["C"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab095243417811278f588b") } > db.demo723.insertOne({"Subject":["C++","Java","Python"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab095f43417811278f588c") }
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.demo723.find();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5eab094d43417811278f588a"), "Subject" : [ "MySQL", "MongoDB" ] } { "_id" : ObjectId("5eab095243417811278f588b"), "Subject" : [ "C" ] } { "_id" : ObjectId("5eab095f43417811278f588c"), "Subject" : [ "C++", "Java", "Python" ] }
Sau đây là truy vấn đếm các phần tử mảng trong MongoDB -
> db.demo723.aggregate([ ... { $project: { count: { $size: '$Subject' } } } ... ])
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5eab094d43417811278f588a"), "count" : 2 } { "_id" : ObjectId("5eab095243417811278f588b"), "count" : 1 } { "_id" : ObjectId("5eab095f43417811278f588c"), "count" : 3 }