$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 API
非常に奇妙なことに、私はほとんど同じクエリを使用しており、私は限界が無視されているのを見ることができます。私のDB上の locationプロパティは、次のようになります。 '\t \t "場所":{ \t \t \t "タイプ": "ポイント"、 \t \t \t "座標":[ \t \t \t \t 34.780659466136484、 \t \t \t \t 32.08260571073972 \t \t \t] \t \t} '多分それは形式の問題ですか? –
これは、私のクエリが "location.coordinates"ではなく "location"にあるという事実に関連しているかもしれませんか? "location.coordinates"の結果は0です。 –
は、minDistanceとmaxDistanceの値で遊んでいます。定義している形と重なっていない可能性があります。 – alekseys