Skip to content
Related Articles

Related Articles

MongoDB – Query Embedded Documents Using Mongo Shell
  • Last Updated : 27 Mar, 2020

MongoDB provides you read operations to retrieve embedded/nested documents from the collection or query a collection for a embedded/nested document. You can perform read operations using the db.collection.find() method. This method selects or views embedded/nested documents of the collection and returns the cursor to the selected document.

Syntax: db.collection.find(filter, projection)
Parameters:

  • filter: It is an optional parameter. It specifies the selection filter with the help of query operators. And if you want to get all the documents present in the collection, then omit these parameters or pass an empty document in the method. The type of this parameter is a Document.
  • projection: It is an optional parameter. It specifies that only those fields return to the document that matches the given query filter. And if you want to get all the fields in the document, then omit this parameter. Learn more.

Return: This method returns a cursor to the documents that match the specified query criteria. When you use find() method, it returns documents, which means the method is actually returning the cursor to the documents.

Accessing embedded/nested documents –

In MongoDB, you can access the fields of nested/embedded documents of the collection using dot notation and when you are using dot notation, then the field and the nested field must be inside the quotation marks.

Syntax:



"field.nestedField": value

In the following examples, we are working with:

Database: GeeksforGeeks
Collection: Courses
Document: three documents that contain the details of the students in the form of field-value pairs.

Matching embedded/nested document –

In this example, we are retrieving the documents that exactly match the given embedded document.




db.Courses.find({name: {first: "Rohit"
                        middle: "Kumar"
                        last: "Singh"}}).pretty()

Select documents that match the nested field –

In this example, we are retrieving the documents that match the specified nested field.




db.Courses.find({"courseDetails.name": "Java Backend Development"}).pretty()

Select documents that match the nested field (Using query operators) –

In this example, we are retrieving the documents that match the nested field using the query operators. Here, in the query, we use $in operator. This operator is used to match any of the values specified in the given array.




db.Courses.find({"name.first": {$in: ["Rohit", "Mohit"]}}).pretty()

Select documents that match the nested fields (Using AND condition) –

In this example, we are retrieving the documents that match the nested fields.




db.Courses.find({"courseDetails.name": "Sudo GATE 2020",
                 "name.first": "Mohit"}).pretty()

Getting the specified fields from the embedded/nested documents :

In this example, we are retrieving fields from the embedded/nested documents using projection.




db.Courses.find({branch: "CSE"}, {"name.first": 1
                                  "name.last": 1}).pretty()


Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :