'Exclude fields from result in MongoDB monk

I want to exclude some fields from result. I have code:

users = db.select('users');

users.find( {}, { sort: { points:1 }, privateKey:0, publicKey:0}, function(err,data){      
  res.send(data);
});

I want to exclude private and public key from results. Can I do that using monk?



Solution 1:[1]

According to documentation first argument in find is filter and second is projection .But you have used sort . It will not able to interpret . You are trying to confuse projection with sort .Sorting should be after find and projection.

You can write projection like { field1: <boolean>, field2: <boolean> ... }

Note : The find() method always includes the _id field even if the field is not explicitly stated to return in the projection parameter.

 users.find({}, { privateKey: 0, publicKey: 0 }).sort({points: 1}).toArray(
           function (err, data) {
                      res.send(data);
             });

Solution 2:[2]

For me, I need to use the .project() method:

const someFunction = async () => {

    const result = await users
        .find({}, { sort: { points: 1 })
        .project({ privateKey: 0, publicKey: 0});

};

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Alex Crist