$include
The $include projection operator is used in queries to specify the fields that should be returned in the result documents. By using $include, you can choose to retrieve only fields of interest, making your query more efficient by minimizing the amount of data returned.
The syntax for $include is as follows:
{
field: 1;
}Here, field is the name of the field to include, and 1 indicates that you want the field included in the result documents. You can include multiple fields by specifying them in a comma-separated list:
{ field1: 1, field2: 1, field3: 1 }Example
Suppose we have a collection called books with the following documents:
[
{
title: 'The Catcher in the Rye',
author: 'J.D. Salinger',
year: 1951,
genre: 'Literary fiction',
},
{
title: 'To Kill a Mockingbird',
author: 'Harper Lee',
year: 1960,
genre: 'Southern Gothic',
},
{
title: 'Of Mice and Men',
author: 'John Steinbeck',
year: 1937,
genre: 'Novella',
},
];If you want to retrieve only the title and author fields from the documents in the books collection, you can use the $include projection operator as follows:
db.books.find({}, { title: 1, author: 1, _id: 0 });The result will be:
[
{
title: 'The Catcher in the Rye',
author: 'J.D. Salinger',
},
{
title: 'To Kill a Mockingbird',
author: 'Harper Lee',
},
{
title: 'Of Mice and Men',
author: 'John Steinbeck',
},
];Note that we have also excluded the _id field (which is included by default) by setting it to 0.
Keep in mind that you cannot combine $include and $exclude (or 1 and 0) in the same query, except for the _id field, which can be excluded even when other fields are being included.