What is select() in Mongoose?

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.

Example

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.

How to include a field with 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})

Example

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 schema
const user = new Schema({
name : String,
age: Number,
password: String
});
// Returns only "name" and "age" field
// and excludes "password" field
query.select("name age")
query.select({age: 1, name: 1})

How to exclude a field with 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.

Example

In the example below, the password field is excluded in the query result using the - or the object notation of 0.

// Create a schema
const user = new Schema({
name : String,
age: Number,
password: String
});
// Returns only "name" and "age" field
// and excludes "password" field
query.select("-password")
query.select({password: 0})
New on Educative
Learn to Code
Learn any Language as a beginner
Develop a human edge in an AI powered world and learn to code with AI from our beginner friendly catalog
🏆 Leaderboard
Daily Coding Challenge
Solve a new coding challenge every day and climb the leaderboard

Free Resources