MongoDBへの呼び出しからデータを取得できません。 私はコンソールに結果を表示することができますが、呼び出しの外で自分のプログラムで使用できるようにこれらの結果を外部の配列に書き込み/コピーしようとすると、何も得られません。 私が見たすべての例は、接続ループ内のすべての作業を行います。結果が配列(グローバルまたは渡された配列)にコピーされ、接続が終了し、プログラムが外部配列の処理を続行する例は見つかりません。MongoDBの呼び出しからデータを取得する
サンプルコードのほとんどは、あまりにも単純すぎる(つまり、接続ループ内のconsole.logのみ)か、あまりにも複雑で、エクスプレスAPIルートを作成する方法の例があります。私は旧式のシリアルバッチ処理をしているので、これは必要ありません。 私はMongoが非同期に構築されていることを理解していますが、まだそれを使用できるはずです。
MongoClient.connect('mongodb://localhost:27017/Lessons', function (err, db) {
assert.equal(err, null);
console.log("Connectied to the 'Lessons' database");
var collection = db.collection('students');
collection.find().limit(10).toArray(function(err, docs) {
// console.log(docs);
array = docs.slice(0); //Cloning array
console.log(array);
db.close();
});
});
console.log('database is closed');
console.log(array);
ループが終了する前にデータを記録しようとしているようです。しかし、どのようにタイミングを同期させるのですか? もし誰かが私にこのことを説明できたら、私は数日間この事を見つめていて本当にばかげているように感謝しています。
オプション2の正しい軌道に乗っています。あなたの躊躇はオプション1が間違いなく正しいです。 – JohnnyHK