select()
is a method of Mongoose that is used to select document fields that are to be returned in the query result. It is used to include or exclude document fields that are returned from a Mongoose query. The select()
method performs what is called query projection.
query.select("a b");
The example above is a query to return fields a
and b
only.
MongoDB includes the
_id
field by default, so it cannot be excluded.
select()
When a field does not have the -
prefix, then it is included. A +
prefix means a forceful inclusion of the field.
Including a field could also be done by using 1
through object notation.
Including a field can be done as shown below:
// return only fields a and b
query.select("a b")
// same as the one above
query.select({a: 1, b: 1})
Let’s see an example. In the example below, only the user’s name
and age
are returned from the query, while the password
field is excluded.
// Create a schemaconst user = new Schema({name : String,age: Number,password: String});// Returns only "name" and "age" field// and excludes "password" fieldquery.select("name age")query.select({age: 1, name: 1})
select()
Excluding a field is done by prefixing the field with a -
. Or we can use object notation and give the field a 0
. Either of the two ways ensures that a field is not returned or is excluded from the query result.
In the example below, the password
field is excluded in the query result using the -
or the object notation of 0
.
// Create a schemaconst user = new Schema({name : String,age: Number,password: String});// Returns only "name" and "age" field// and excludes "password" fieldquery.select("-password")query.select({password: 0})