我有一个带Mongoose ODM的NodeJS应用程序( Mongoose 3.3.1 ) . 我想从我的集合中检索除1之外的所有字段 . 例如:我有一个集合Product有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);
}
});
但这会返回 error
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中的集合中排除一个/(两个)特定字段 .
4 回答
在当前(3.x)Mongoose构建中使用query.select进行字段选择 .
使用
-
作为要排除的字段名称的前缀;所以在你的情况下:快速旁白:在JavaScript中,应该为构造函数保留以大写字母开头的变量 . 因此,请考虑在代码中将
Query
重命名为query
.我不知道你在哪里读到.exclude函数,因为我在任何文档中都找不到它 .
但是您可以使用find方法的第二个参数排除字段 .
以下是the official documentation的示例:
这段代码在我的项目中有效 . 谢谢!!祝你今天愉快 .
你可以做到这一点