Они идентичны, и нет никакой пользы в вашем примере
Если вы не передать функцию обратного вызова, чтобы найти функцию он не будет выполняться, но вместо этого возвращает запрос, то вам нужно использовать Exec()
var query = User.find();
теперь вы можете добавить еще несколько критериев
query.where({age: 15});
и некоторые более
query.select({name:1}); // or {firstname:1, lastname:1} etc.
Теперь вы создали свой запрос, чтобы получить результаты, необходимые для его выполнения.
query.exec(function(err, users){
});
Но вы также можете сделать это, как
User.find({age:15}, {name:1}, function(err, users){
});
Выше идентичен
User.find({age:15}, {name:1}).exec(function(err, users){
});
, поскольку нет обратного вызова в функции поиска будет возвращать запрос, который не означает, что никаких результатов, Exec будет дает вам результаты