2012-03-05 20 views
5

Zastanawiam się, czy możemy przekazać zmienne jako parametry do funkcji mapy w CouchDb.Przekazywanie parametrów do funkcji map w CouchDb

Praktycznie mam bazę danych ze współrzędnymi miejsc i chcę tylko mapować/redukować miejsca, które są w zasięgu punktu. Jak mogłem to zrobić? Chcę coś takiego:

function(doc, x, y, radius) { 
    if (doc.x - x)^2 + (doc.y - y)^2 < radius^2 { 
    emit(doc._id, doc); 
    } 
} 

Jak możemy to zrobić w CouchDb?

Odpowiedz

4

Masz 3 opcje:

  1. Zastosowanie GeoCouch ponieważ robisz zapytań geoprzestrzennych
  2. napisać osobne indeksy widok dla każdej lokalizacji
  3. użyć list function na stanowisku, że mapy wszystkie twoje odpowiednie dokumenty (możesz przekazywać parametry przez zapytanie do funkcji listy)
+0

Funkcja listy wygląda obiecująco, ponieważ GeoCouch nie jest jeszcze obsługiwany przez heroku. Zrobię to teraz. – mabounassif

+0

Trzecia opcja zadziałała! Wielkie dzięki! – mabounassif