Einige Methoden der Mongoose zu verwenden gibt eine Abfrage, aber nicht ausführen andere werden direkt ausgeführt.
Wenn nur eine Abfrage zurückgegeben wird, verwenden Sie exec().
'then' wird nach der Ausführung als Versprechens-Handler verwendet.
Sie können 'then und catch' oder Callback nach der Ausführung verwenden.
Es gibt ein Beispiel mit Versprechen und das gleiche mit Callback.
Cat.find({})
.select('name age') // returns a query
.exec() // execute query
.then((cats) => {
})
.catch((err) => {
});
Cat.find({})
.select('name age') // returns a query
.exec((err,cats) => { // execute query and callback
if(err){
} else {
}
});
Jetzt können gleiche ohne Abfrage machen (keine Felder auswählen, nicht exec müssen, weil bereits exec)
Cat.find({})
.then((cats) => {
})
.catch((err) => {
});
Cat.find({}, (err,cats) => {
if(err){
} else {
}
});
Sind Sie Mungo mit? – rebe100x
Mögliches Duplikat von [Mongoose - Was macht die Exec-Funktion?] (Https://stackoverflow.com/questions/31549857/mongoose-what-does-the-exec-function-do) –