【发布时间】:2011-06-06 07:27:48
【问题描述】:
我一般是 JS 新手,但我正在尝试从 MongoDB 查询一些数据。基本上,我的第一个查询检索具有指定会话 ID 的会话的信息。第二个查询对位于指定位置附近的文档进行简单的地理空间查询。
我正在使用 mongodb-native 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);
});
});
});
【问题讨论】:
标签: javascript mongodb node.js