I am using the mongodb native driver for node.js and can\'t get to work the field selection. What I want to do is to limit fields to name. I do not want the \'last\' in the outp
The field selection argument to find
is an object, not an array. And you can't mix field inclusion and exclusion (except for _id
), so it should be:
db.collection("test").find({}, {'name': true}).toArray(function(err, results) {
console.dir(results);
});
If you are using latest mongodb 3.0 nodejs driver, then try this code:
db.collection('test').find({}).project({name: 1, last: 1}).toArray();
Omit the array:
db.collection("test").find({},{'name':true,'last':false}).toArray(function(err, results) {
console.dir(results);
});
The recommended way of doing this in v3.0 is with the projection field in the options object:
db.collection('test').find({}, {projection: {name: 1}}).toArray()
As mentioned in the accepted answer, you still cannot mix inclusion and exclusion.
See: http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#find