特定のフィールドのみを選択しようとしています
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);
});
};