2012-03-05 47 views
5

Tôi tự hỏi liệu chúng ta có thể truyền các biến như các tham số cho một hàm bản đồ trong CouchDb hay không.Truyền tham số cho các hàm bản đồ trong CouchDb

Thực tế, tôi có cơ sở dữ liệu với tọa độ địa điểm và tôi chỉ muốn ánh xạ/giảm các địa điểm nằm trong tầm với của một điểm. Làm thế nào tôi có thể làm điều đó? Tôi muốn một cái gì đó như:

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

Làm cách nào chúng ta có thể làm điều đó trong CouchDb?

Trả lời

4

Bạn có 3 lựa chọn:

  1. Sử dụng GeoCouch kể từ khi bạn đang truy vấn không gian địa lý
  2. Viết lên chỉ số quan điểm riêng cho từng vị trí của bạn
  3. Sử dụng một list function trên quan điểm cho rằng bản đồ tất cả các tài liệu liên quan của bạn (bạn có thể chuyển các tham số thông qua chuỗi truy vấn đến chức năng danh sách)
+0

Chức năng danh sách trông đầy hứa hẹn vì GeoCouch chưa được heroku hỗ trợ. Tôi sẽ cho nó một shot ngay bây giờ. – mabounassif

+0

Tùy chọn thứ 3 đã hoạt động! Cảm ơn rất nhiều! – mabounassif

Các vấn đề liên quan