0

` Bson bson = Filters.geoWithinCenter(“loc”, 110.29239, 30.2323, 120 / 111000);

FindIterable findIterable = mongoTemplate.getCollection(“test”).find(bson);
MongoCursor iterator = findIterable.iterator();`
我再shlell里面用explain执行发现查询60万条数据也只需要不到1s的样子;但是在java代码里面发现findIterable.iterator()这行代码迭代需要20s时间。速度超级慢。为什么获取游标信息这么慢呢?有没有大神知道该怎么解决这种问题。

我执行explain()发现,索引使用情况好像有些问题。没有出现理想的情况
nReturned=totalKeysExamined & totalDocsExamined
nReturned=1900000 totalKeysExamined =2301000 totalDocsExamined = 2300000

我插入地理位置格式为:loc : { type: “Point”, coordinates: [ -73.97, 40.77 ] }
索引使用情况确实都用到了Fetch+ixscan,不明白没什么扫描文档超过查询结果集这么多,新手不知道是什么造成了这种情况,还请大神能给解惑。