To count number of elements in an array, use the aggregate framework. Let us first create a collection with documents −
>db.countNumberOfElementsDemo.insertOne({"UserMessage":["Hi","Hello","Bye","Awesome"]}); { "acknowledged" : true, "insertedId" : ObjectId("5cef8ec2ef71edecf6a1f6a1") }
Display all documents from a collection with the help of find() method −
> db.countNumberOfElementsDemo.find().pretty();
This will produce the following output −
{ "_id" : ObjectId("5cef8ec2ef71edecf6a1f6a1"), "UserMessage" : [ "Hi", "Hello", "Bye", "Awesome" ] }
Following is the query to count number of elements in an array −
> db.countNumberOfElementsDemo.aggregate({$project: { NumberOfElements: { $size:"$UserMessage" }}})
This will produce the following output −
{ "_id" : ObjectId("5cef8ec2ef71edecf6a1f6a1"), "NumberOfElements" : 4 }