MongoDB query to find data from an array inside an object?



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 ] } }
Updated on: 2019-07-30T22:30:26+05:30

545 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements