MongoDBのDog.find()Dog.create()の前に実行される前に実行されているMongoDBのDog.findは()Dog.create()
私はちょうど私のように理解できないいくつかの問題を抱えていますそれがどうして起こったのか? 私はちょうどオンラインチュートリアルでmongodbを学び始めました。私は自分のコードをcloud9で練習します。 私はfind()やcreate()のような基本的なクエリを練習していました。 最初にDog.create()メソッドを追加しました。新しい犬を名前パラメータだけで追加し、次にcreate()メソッドの下にDog.find()を追加してdbにあるすべてのデータを検索しました。
しかし、問題はDog.find()が最初に実行され、Dog.createが最後に実行されることです。
以下のコードを投稿しました。
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);
}
});
結果
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 }
誰もが私にこれを説明occurs.Canあなたは最初のfindメソッドが実行された結果、その後の作成方法を見ることができますか?
マングースメソッドは約束を返し、コールバックの代わりにそれらを使用します。 – alexmac
ありがとうございました@Farid Nouri Neshat。確かにチェックアウトはmongoose @ alexmacのメソッドを約束します。 –