MongoDB – Projection

In MongoDB, projection means selecting only the necessary data rather than selecting the whole of the data of a document. If a document has 5 fields and you need to show only 3, then select only 3 fields from them.

The find() Method

MongoDB’s find() method, explained in MongoDB Query Document accepts a second optional parameter that is a list of fields that you want to retrieve. In MongoDB, when you execute the find() method, then it displays all fields of a document. To limit this, you need to set a list of fields with values 1 or 0. 1 is used to show the field while 0 is used to hide the fields.

Syntax

The basic syntax of find() method with projection is as follows −

>db.COLLECTION_NAME.find({},{KEY:1})

Example

Consider the collection mycol has the following data −

{_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"},
{_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"},
{_id : ObjectId("507f191e810c19729de860e3"), title: "adglob Overview"}

The following example will display the title of the document while querying the document.

>db.mycol.find({},{"title":1,_id:0})
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
{"title":"adglob Overview"}

Please note _id field is always displayed while executing the find() method, if you don’t want this field, then you need to set it as 0.

Leave a Reply