0
mongoDBデータベースからデータを取得するのにnode.jsサーバーで作業していますが、扱いにくいですし、以前は使用したことがないために約束を使用したいと思っています。コードをクリーンアップすることもできます。私はノードにbluebird
モジュールを使用してmongodbを約束しており、現在1つのアイテムを見ることができます。promised mongodbを使用して複数の文書を検索する
var client = MongoClient.connectAsync('mongodb://localhost:27017/stockData')
.then(function(db) {
return db.collection("stockData").findOneAsync({ High: 253.41796296683228 })
})
.then(function(doc) {
console.log(doc)
})
.catch(function(err) {
console.log(err)
});
しかし私は、しかし、私はトラブル全部のまわりで私の頭をラップを抱えているとの約束を使用するために、ここでこのコードのチャンクを変換したいカーソルを使用して複数のドキュメントをループできるようにしたいと思います。
MongoClient.connect(url, function(err,db){ //set up connection to mongodb takes two parameters a url for the db and a callback function
assert.equal(err,null) //check to see if there any errors connecting to the database
var cursor = db.collection('stockData').find().limit(10) // cursor will be an array of objects retrieved from the database
cursor.forEach(function(doc, err){ //loop through the cursor
assert.equal(null,err) //check for errors
console.log(doc)
}, function(){
db.close(); //close the database once the query is finished
});
});
この問題は、何が起こっているのか説明できれば、私はそれをうまくやることができます。
あなたは '.connectAsyncは()' '関数(errは、デシベル)'関数を続けていることは本当によろしいですか?それはまさに典型的なことではない約束のようなものです。 – Tomalak
私はそれをあなたの方法で試してみましたが、約束が拒否されたまま返ってきて、dbパラメータが定義されていません –
大変申し訳ありません。私は今それを更新しました。 @CraigHyland –