私はJSの方が一般的ですが、MongoDBからいくつかのデータを照会しようとしています。基本的に、私の最初のクエリは、指定されたセッションIDを持つセッションの情報を取得します。 2番目のクエリは、指定された場所に近い場所にあるドキュメントの単純なジオスペースクエリを実行します。nodejs、mongodb - 複数のクエリのデータを操作するにはどうすればよいですか?
私はmongodb-native javascriptドライバを使用しています。これらのクエリメソッドはすべて、結果をコールバックで返します。したがって、それらは非ブロッキングです。これは私のトラブルの根源です。私がする必要があるのは、2番目のクエリの結果を取得し、返されたすべてのドキュメントのsessionIdの配列を作成することです。それから私はそれらを後で関数に渡すつもりです。しかし、私はこの配列を生成することはできませんし、コールバックの外のどこでも使用します。
これを正しく行う方法を知っている人はいますか?
db.collection('sessions', function(err, collection) {
collection.findOne({'sessionId': client.sessionId}, function(err, result) {
collection.find({'geolocation': {$near: [result.geolocation.latitude, result.geolocation.longitude]}}, function(err, cursor) {
cursor.toArray(function(err, item) {
console.log(item);
});
});
});