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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…