我有一个带有 Mongoose ODM(Mongoose 3.3.1) 的 NodeJS 应用程序。我想从我的集合中检索除 1 之外的所有字段。例如:我有一个包含 6 个字段的集合产品,我想选择除字段 "Image"之外的所有字段。我使用了“exclude”方法,但出现错误.. 这是我的代码。
var Query = models.Product.find();
Query.exclude('title Image');
if (req.params.id) {
Query.where('_id', req.params.id);
}
Query.exec(function (err, product) {
if (!err) {
return res.send({ 'statusCode': 200, 'statusText': 'OK', 'data': product });
} else {
return res.send(500);
}
});
但这会返回错误
Express
500 TypeError: Object #<Query> has no method 'exclude'.........
我也试过了,var Query = models.Product.find().exclude('title','Image');
和 var Query = models.Product.find({ }).exclude('title','Image');
但得到同样的错误。如何从 Mongoose 的集合中排除一个/(两个)特定字段。
最佳答案
使用 query.select
用于当前 (3.x) Mongoose 构建中的字段选择。
使用 -
为要排除的字段名称添加前缀;所以在你的情况下:
Query.select('-Image');
顺便说一句:在 JavaScript 中,以大写字母开头的变量应该保留给构造函数。因此,请考虑在您的代码中将 Query
重命名为 query
。
关于javascript - 如何从 Mongoose 的集合中排除一个特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559200/