Mongoose、検索で特定のフィールドを選択する質問する

Mongoose、検索で特定のフィールドを選択する質問する

特定のフィールドのみを選択しようとしています

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);
    });
};

しかし、私のJSONレスポンスでは_idも受信しています。私のドキュメントスキーマには_idとnameの2つのフィールドしかありません。

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

なぜ???

ベストアンサー1

この_idフィールドは、明示的に除外しない限り常に存在します。除外するには、次の-構文を使用します。

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);
    });
};

または、オブジェクトを介して明示的に:

exports.someValue = function(req, res, next) {
    //query with mongoose
    var query = dbSchemas.SomeValue.find({}).select({ "name": 1, "_id": 0});

    query.exec(function (err, someValue) {
        if (err) return next(err);
        res.send(someValue);
    });
};

おすすめ記事