2011-04-13 91 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

回答