2011-07-01 12 views
2

100を超える結果を含む地理空間クエリのカウント操作に問題があるようです。私は次のクエリを実行する場合、私はまだ100何のカウントを取得します。MongoDB地理空間クエリーカウントの問題(常に100)

db.locations.find({"loc":{$nearSphere:[50, 50]}}).limit(1000).count() 

「ニア」構文を使用するクエリのデフォルトのサイズ制限は100ですが、それ以上は返すことはできません。私は何か間違っているのですか、これに対して回避策がありますか?

答えて

0

カーソルについて報告されたカウントが100であっても(クエリに与える制限にかかわらず、「10」さえも)、実際に「制限」数の結果が返されます。クエリ。

希望に役立ちます:

はここで、彼らはそれが壊れていない主張の問題へのリンクです!

2

「近く」ではなく「内」で試してください。 これは私の作品、

center = [50, 50]; 
radius = 1/111.12; //convert it to KM. 

db.places.count({"loc" : {"$within" : {"$center" : [center, radius]}}}) 

私はそれはMongoのクエリの問題ではありませんhttps://jira.mongodb.org/browse/SERVER-856

+0

このような理由は、$ nearに設定されているように見えます。デフォルトの制限は100です。ご覧ください。http://stackoverflow.com/questions/5492901/query-near-vs-within – user890973

0

でこれを見つけました。 cursor.count()ではなくcursor.size()を使用してみてください。カウントには、サイズの制限が考慮されていません。したがって、count()の代わりに.size()を使用すると、正しい数の返された項目からプリントが得られるはずです。

問題を解決するために、このスタックオーバーフローのQとAを確認してください。 Difference between cursor.count() and cursor.size() in MongoDB

関連する問題