Let us first create a collection with documents −
> db.findDataDemo.insertOne( { "_id": new ObjectId(), "CustomerName":"John", "CustomerDetails" : { "CountryName" : [ "AUS" ], "isMarried" : [ false ] } } ); { "acknowledged" : true, "insertedId" : ObjectId("5cefa5eeef71edecf6a1f6a5") } > db.findDataDemo.insertOne( { "_id": new ObjectId(), "CustomerName":"Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } } ); { "acknowledged" : true, "insertedId" : ObjectId("5cefa60aef71edecf6a1f6a6") }
Display all documents from a collection with the help of find() method −
> db.findDataDemo.find().pretty();
Output
{ "_id" : ObjectId("5cefa5eeef71edecf6a1f6a5"), "CustomerName" : "John", "CustomerDetails" : { "CountryName" : [ "AUS" ], "isMarried" : [ false ] } } { "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }
Following is the query to find data from an array inside an object −
> db.findDataDemo.find({"CustomerDetails.CountryName":"UK"});
Output
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }