Syntax error Query array of nested string with MongoDB?

Query array of nested string with MongoDB?



To query array of nested string, you can use the dot(.) notation. Let us first create a collection with documents −

> db.nestedStringDemo.insertOne(
   {
      "CustomerName": "John",
      "CustomerOtherDetails": [ { "Age":29, "CountryName": "US" },
      { "CompanyName": "Amazon",
      "Salary": 150000, "ProjectName": ["Online Library Management System", "Pig Dice Game"]
   } ] }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cea4629ef71edecf6a1f690")
}
> db.nestedStringDemo.insertOne(
{
   "CustomerName": "Chris",
   "CustomerOtherDetails": [ { "Age":27, "CountryName": "AUS" },
   { "CompanyName": "Google",
      "Salary": 250000, "ProjectName": ["Chat Application", "Game Design"]
   } ] }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cea466eef71edecf6a1f691")
}

Following is the query to display all documents from a collection with the help of find() method −

> db.nestedStringDemo.find().pretty();

This will produce the following output −

{
   "_id" : ObjectId("5cea4629ef71edecf6a1f690"),
   "CustomerName" : "John",
   "CustomerOtherDetails" : [
      {
         "Age" : 29,
         "CountryName" : "US"
      },
      {
         "CompanyName" : "Amazon",
         "Salary" : 150000,
         "ProjectName" : [
            "Online Library Management System",
            "Pig Dice Game"
         ]
      }
   ]
}
{
   "_id" : ObjectId("5cea466eef71edecf6a1f691"),
   "CustomerName" : "Chris",
   "CustomerOtherDetails" : [
      {
         "Age" : 27,
         "CountryName" : "AUS"
      },
      {
         "CompanyName" : "Google",
         "Salary" : 250000,
         "ProjectName" : [
            "Chat Application",
            "Game Design"
         ]
      }
   ]
}

Now, let us query an array of nested string using dot notation −

> db.nestedStringDemo.find({"CustomerOtherDetails.ProjectName":"Chat Application"}).pretty();

This will produce the following output −

{
   "_id" : ObjectId("5cea466eef71edecf6a1f691"),
   "CustomerName" : "Chris",
   "CustomerOtherDetails" : [
      {
         "Age" : 27,
         "CountryName" : "AUS"
      },
      {
         "CompanyName" : "Google",
         "Salary" : 250000,
         "ProjectName" : [
            "Chat Application",
            "Game Design"
         ]
      }
   ]
}
Updated on: 2019-07-30T22:30:26+05:30

194 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements