我是JS的新手,但我试图从MongoDB中查询一些数据。基本上,我的第一个查询检索具有指定会话ID的会话的信息。第二个查询对位于指定位置附近的文档进行简单的地理空间查询。nodejs,mongodb - 如何操作来自多个查询的数据?
我正在使用mongodb原生javascript驱动程序。所有这些查询方法都以回调的形式返回结果,因此它们是非阻塞的。这是我的烦恼的根源。我需要做的是检索第二个查询的结果,并创建所有返回文档的sessionIds数组。然后我将在稍后将这些函数传递给函数。但是,我无法生成这个数组并在回调之外的任何地方使用它。
有没有人有任何想法如何正确地做到这一点?
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);
});
});
});