2011-07-01 54 views
2

對於包含超過100個結果的地理空間查詢,計算操作看起來存在問題。如果我運行以下查詢,無論如何我仍然可以得到100的計數。MongoDB地理空間查詢計數問題(始終爲100)

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

據我所知,使用「near」語法的查詢的默認大小限制是100,但看起來你不能返回更多。我做錯了什麼或有沒有解決方法?

回答

0

儘管光標計數爲100(不管您給查詢的限制是甚麼「10」),但實際上在您運行時通過返回結果返回「限制」數量的結果查詢。

下面是他們斷言它不破的問題鏈接:

希望幫助!

2

嘗試「內」而不是「附近」。 這對我的作品,

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

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

,我發現這個在https://jira.mongodb.org/browse/SERVER-856

+0

出於這個原因,似乎設置了100個結果的默認限制。請參見http://stackoverflow.com/questions/5492901/query-near-vs-within – user890973

0

這是不符合蒙戈查詢的問題。嘗試使用cursor.size()而不是cursor.count()。 Count沒有考慮尺寸的限制。所以如果你使用.size()而不是count(),你應該從正確數量的返回項目中得到一個打印。

看看這個堆棧溢出Q和A,以清楚地解決您的問題。 Difference between cursor.count() and cursor.size() in MongoDB