2011-07-01 51 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