首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mongodb查找查询中使用$nearSphere + limit

在mongodb查找查询中使用$nearSphere + limit
EN

Stack Overflow用户
提问于 2017-11-20 17:29:27
回答 1查看 382关注 0票数 1

我用$nearSphere创建了一个查询,我意识到有时会得到巨大的结果(1000+),这会影响应用程序的性能。

我尝试过使用.limit(),但是查询似乎忽略了它。我还尝试使用batch_size(),它似乎丝毫不影响返回的结果的数量。

有没有任何一种黑客或方法来限制返回的结果?我考虑过使用迭代器执行,这就是我所做的,对性能来说似乎不太好:

代码语言:javascript
复制
for r in xrange(0,limit):
        print res.next()

查询本身非常简单:

代码语言:javascript
复制
query = {"location": {
    "$nearSphere": {"$geometry": {"type": "Point", "coordinates"
     [geo['lat'], geo['lng']]}, "$maxDistance": 500}}}


coll.find(query).limit(4).batch_size(4)

我在Azure Cosmos-db上使用Mongodb

EN

回答 1

Stack Overflow用户

发布于 2017-11-21 00:32:05

我不能重复这个问题。极限运转得很好。尝试使用https://aka.ms/mongodb-feature-support中的示例文档(在同一个集合中只复制几个副本)和文档中的查询,并将.limit(1)追加到其中以查看正确的行为:

db.volcanos.find({ "Location.coordinates":{ $nearSphere:{ $geometry:{type:"Point",坐标:-121,46 },$minDistance: 1000,$maxDistance: 1000000 } }).limit(1)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47397817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档