Search using "near" seems to only return 100 results
Opened this issue · 4 comments
For some reason, no matter how many matching documents I should have, I'm always getting max 100 results back.
where(
:coordinates.near(:sphere) => {
point: [some_longitude, some_latitude],
max: search_radius,
unit: :km
}
).limit(9999).count #=> 100
A bit of reading reveals that the MongoDB Geospatial index will return 100 documents by default (http://www.mongodb.org/display/DOCS/Geospatial+Indexing). I can't seem to override it though. I'm looking into it now but thought I would raise it here in case somebody can figure it out before me.
FYI, I'm using mongoid_spacial 0.2.1, mongoid 2.3.3, mongo (gem) 1.4.0, MongoDB 1.8.2 & Ruby 1.9.3-p0.
Same problem. Any resolution to this?
I worked around it by using the "within" scope...
where(
:coordinates.within(:center) => {
point: [some_longitude, some_latitude],
max: search_radius,
unit: :km
}
).limit(9999).count #=> 9999
The downside is that results are not ordered by distance from a point but it is slightly more performant.
Yeah that seems to work I guess.
@moowahaha Do you ordered your element in some way? I'm using near
only because the order.