mongodb Dog.find() vor Dog.create Ausführung()mongodb Dog.find() vor Dog.create Ausführung()
Ich habe gerade ein paar Probleme, die ich nicht verstehen kann, also warum es passiert. Ich fing gerade an, mongodb mit online tutorial zu lernen. Ich übe meinen Code bei cloud9. Ich übte die grundlegenden Abfragen wie find() und create(). Ich habe zuerst die Dog.create() -Methode hinzugefügt, indem ich einen neuen Hund mit nur einem name -Parameter hinzufügte und anschließend unterhalb der create() -Methode Dog.find() hinzufügte, um alle in der db vorhandenen Daten zu finden.
Aber das Problem ist Dog.find() ausgeführt zuerst und die Dog.create wird zuletzt ausgeführt.
Ich habe den folgenden Code geschrieben.
var mongoose= require("mongoose");
mongoose.connect("mongodb://localhost/dog_app");
var dogSchema = new mongoose.Schema({
name:String
});
var Dog = mongoose.model("Dog", dogSchema);
Dog.create({
name:"duppy"
}, function(err, dog){
if(err){
console.log(err);
}else{
console.log("created a new dog");
console.log(dog);
}
});
Dog.find({}, function(err , dogs){
if(err){
console.log(err);
} else{
console.log("retrived from database");
console.log(dogs);
}
});
Ergebnisse
adi188288:~/workspace/IntroToNode/Databases $ node dogs.js
(node:7113) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/connections.html#use-mongo-client
retrived from database
[ { _id: 59bd6256bffba3198bce7e87, name: 'Puppy', __v: 0 } ]
created a new dog
{ __v: 0, name: 'Puppy2', _id: 59bd6932a2d4c81bc9488b74 }
Sie können die Ergebnisse sehen, die zuerst eine der find-Methode ausgeführt wird und dann create-Methode occurs.Can Wer mir dies erklären?
Mongoose-Methoden geben die Versprechen zurück, verwenden sie statt Callbacks. – alexmac
Vielen Dank @Farid Nouri Neshat. und wird sicher auschecken verspricht Methode in mongoose @ alexmac.Vielen Dank Ihnen beiden –