Fetch records in MongoDB on querying its subset

MongoDBDatabaseBig Data Analytics

You can use $all operator. Let us first create a collection with documents −

> db.subsetOfAnArrayDemo.insertOne({"StudentProgrammingSkills":
   ["Java","MongoDB","MySQL","C++","Data Structure","Algorithm","Python","Oracle","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cb9d1e1895c4fd159f80804")
}

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

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

This will produce the following output −

{
   "_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
   "StudentProgrammingSkills" : [
      "Java",
      "MongoDB",
      "MySQL",
      "C++",
      "Data Structure",
      "Algorithm",
      "Python",
      "Oracle",
      "SQL Server"
   ]
}

Following is the query to get the subset of an array −

> db.subsetOfAnArrayDemo.find({ StudentProgrammingSkills:
   { $all: [ 'MongoDB', 'MySQL' ] } } ).pretty();

This will produce the following output −

{
   "_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
   "StudentProgrammingSkills" : [
      "Java",
      "MongoDB",
      "MySQL",
      "C++",
      "Data Structure",
      "Algorithm",
      "Python",
      "Oracle",
      "SQL Server"
   ]
}
raja
Published on 30-Apr-2019 12:45:39
Advertisements