2011-04-13 54 views
3

我查询是接近的位置($near$maxDistance)文件和下降的日期范围内(一个$or有3套有关日期/时间表$gt/$lt条件) 。MongoDB的计数不准确的地理空间查询

我发现$cursor->count()总是返回100,即使有100个或更多的结果,无论limit()如何。

看起来好像$cursor->skip()->limit()工作正常,允许我跳过超过100个结果(当有超过100个结果),但它困扰我,count()总是返回100,似乎没有办法确定完整的计数(除非是分页,直到没有更多的结果)。

我找到引用map reduce not working correctly with geospatial,和MongoDB的文档中引用默认的100

limit()上述查询查找最接近的点(50,50),并返回它们按距离排序(没有需要额外的排序参数)。使用限制()指定要返回的最大点数(如果未指定,则默认限制为100):

这是已知问题吗?我正在使用PHP驱动程序。

+0

如果你用 '$' 内会发生什么?对于这种类型的查询,某个限制内的条目数量比“$ near”更合适。由于$附近总会期望您传递您想要返回的结果数量。 – 2011-04-13 15:50:04

+0

想一想:mongo怎么知道你想要它?您必须在内部指定限制或使用,因为“near”的意思是“最接近”。如果我告诉过你在我家附近给我所有的麦当劳,你可能会说好距离多远,或者你想要多少最近的麦当劳?没有限定符的count()在技术上可以返回数据库中的所有内容,如果没有给出任何限定条件,因为再次是“near”。蒙戈说,如果你没有资格,那么他们打电话就近接近100. – 2011-04-13 19:13:00

+0

@Tom我将不得不尝试$内。 @迈克尔我使用$ maxDistance,但也许这不是因素(更新问题)? – 2011-04-13 21:23:47

回答