Mongoose, Select a specific field with find

1.2K    Asked by HasegawaSaito in Data Science , Asked on Jul 14, 2021

I want to select only a particular field with the help of the following code:

exports.someValue = function(req, res, next) {
    //query with mongoose
    var query = dbSchemas.SomeValue.find({}).select('name');
    query.exec(function (err, someValue) {
        if (err) return next(err);
        res.send(someValue);
    });
};

But in my JSON, I am receiving the _id also, my document schema only has two fields, _id and name

[{"_id":70672,"name":"SOME VALUE 1"},{"_id":71327,"name":"SOME VALUE 2"}]

Can anybody explain me why I am getting this error?and how mongoose select fields ?

Answered by Kondo Nakamura

In MongoDB, the _id field of the document will always be present unless you explicitly eliminate it.

For eliminating the _id, refer to the following syntax:

exports.someValue = function(req, res, next) {
    //query with mongoose
    var query = dbSchemas.SomeValue.find({}).select('name -_id');
    query.exec(function (err, someValue) {
        if (err) return next(err);
        res.send(someValue);
    });
};

Your Answer

Interviews

Parent Categories