具有find()问题的Node.js Mongodb地理空间查询

时间:2014-03-25 22:00:10

标签: node.js mongodb geospatial

usercollection.find({
      "device_info.location" :
            $geoWithin : { $centerSphere :[[_latitude, _longitude]  , 100/3959]}}},
            function (err, result) {
                if (err) callback(err) else callback(null, result)
            });

正如您所看到的,它是一个简单的查询,用于获取符合位置条件的文档,如果我将其更改为findOne,则此工作完全正常,但在这种情况下,它只返回{}。从终端执行时,相同的查询工作完全正常。有两个记录在此范围内并显示在终端上。

是否有一些特定的原因,为什么它的行为与find()?

1 个答案:

答案 0 :(得分:2)

find将其结果作为Cursor提供给回调,而不是数组。如果您想要一个数组,则需要将调用链接到toArray

usercollection.find({ ...existing query... }).toArray(callback);