我用$nearSphere创建了一个查询,我意识到有时会得到巨大的结果(1000+),这会影响应用程序的性能。
我尝试过使用.limit(),但是查询似乎忽略了它。我还尝试使用batch_size(),它似乎丝毫不影响返回的结果的数量。
有没有任何一种黑客或方法来限制返回的结果?我考虑过使用迭代器执行,这就是我所做的,对性能来说似乎不太好:
for r in xrange(0,limit):
print res.next()查询本身非常简单:
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
发布于 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)
https://stackoverflow.com/questions/47397817
复制相似问题