I came across a piece of Mongoose code that included a query findOne and then an exec() function.
Ive never seen that method in Javascript before? What does it do exactly?
Advertisement
Answer
Basically when using mongoose, documents can be retrieved using helpers. Every model method that accepts query conditions can be executed by means of a callback
or the exec
method.
callback
:
User.findOne({ name: 'daniel' }, function (err, user) { // });
exec
:
User .findOne({ name: 'daniel' }) .exec(function (err, user) { // });
Therefore when you don’t pass a callback you can build a query and eventually execute it.
You can find additional info in the mongoose docs.
UPDATE
Something to note when using Promises in combination with Mongoose async operations is that Mongoose queries are not Promises. Queries do return a thenable, but if you need a real Promise you should use the exec
method. More information can be found here.
During the update I noticed I didn’t explicitly answer the question:
Ive never seen that method in Javascript before? What does it do exactly?
Well it’s not a native JavaScript method, but part of the Mongoose API.