I have a NodeJS application with Mongoose ODM(Mongoose 3.3.1). I want to retrieve all fields except 1 from my collection.For Example: I have a collection Product Which have 6 fields,I want to select all except a field "Image" . I used "exclude" method, but got error.. This was my code.
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); } });
But this returns error
Express 500 TypeError: Object #<Query> has no method 'exclude'.........
Also I tried, var Query = models.Product.find().exclude('title','Image');
and var Query = models.Product.find({}).exclude('title','Image');
But getting the same error. How to exclude one/(two) particular fields from a collection in Mongoose.
Use query.select
for field selection in the current (3.x) Mongoose builds.
Prefix a field name you want to exclude with a -
; so in your case:
Query.select('-Image');
Quick aside: in JavaScript, variables starting with a capital letter should be reserved for constructor functions. So consider renaming Query
as query
in your code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With