couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Anderson <jch...@apache.org>
Subject Re: problem with two key ranges in couchdb
Date Sat, 02 Jan 2010 18:22:00 GMT
On Sat, Jan 2, 2010 at 5:41 AM, Duane Almond Sto. Tomas
<duasto@gmail.com> wrote:
> I'm having problem getting the right results in my coordinate system.
> To explain my system, I have this simple database that have x_axis, y_axis
> and name columns. I don't need to get all the data, I just need to display
> some part of it.
>

The fundamental problem is that CouchDB indexes are 1-dimensional.
Essentially a sorted list. You can pull out every point between 2
lines of longitude. You can pull out every point between 2 lines of
latitude.

But when you need points within a bounding box, you have to pull out
all of the above, and intersect them in your application. (There are
some optimizations you do, but fundamentally, this is the issue.)

This general problem is addressed with geo indexers. You might want to
take a look at this one for Couch:

http://vmx.cx/cgi-bin/blog/index.cgi/geocouch-new-release-0.10.0:2009-09-19:en,CouchDB,Python,geo

Chris


> For example, I have a coordinate system that have 10:10(meaning from x_axis
> -10 to 10 and from y_axis -10 to 10) and I want to display only 49
> coordinates. In sql query I can do it something like this:
> "select * from coordinate where x_axis >= -3 and x_axis <= 3 and y_axis >=
> -3 y_axis <= 3"
>
> I tried this function but no success:
>
>       "by_range": {
>           "map": "function(doc) { emit([doc.x_axis, doc.y_axis], doc) }"
>       }
>
> by_range?startkey=[-3,-3]&endkey=[3,3]
>
> I got a wrong results of:
>
> -3x-3
> -3x-2
> -3x-1
> -3x0
> -3x1
> -3x2
> -3x3
> <-- should not display this part -->
> -3x4
> -3x5
> -3x6
> -3x7
> -3x8
> -3x9
> -3x10
> <-- end of should not display this part -->
> ..... up to 3x3
>
> to give you a better understanding of my project here is the screenshot of
> that I want to be made:
> http://img96.imageshack.us/img96/5382/coordinates.jpg
>
> --
> I wanted a perfect ending.
> Now I've learned, the hard way, that some poems don't rhyme, and some
> stories don't have a clear beginning, middle, and end.
> Life is about not knowing, having to change, taking the moment and making
> the best of it, without knowing what's going to happen next......Farewell
> Team !
>
> Duane Almond C. Sto. Tomas
> 09062772487
> OOiP Manila
> personal websites:
>   http://duasto.freehostia.com/
>   http://duanealmond.com/
>



-- 
Chris Anderson
http://jchrisa.net
http://couch.io

Mime
View raw message