2013-04-28 6 views
1

У меня есть CouchDB, где каждый документ представляет точку на карте. Кроме того, каждый doc имеет список идентификаторов, и каждый из этих идентификаторов представляет собой цель для ссылки на карте. Интересно, можно ли создать пространственный индекс GeoCouch, где ключи представляют собой GeoJSON-представления ссылок (например, LineStrings). Я приведу пример ниже.Исключить связи между геопозициями двух доков с CouchDB + GeoCouch

Давайте предположим, что у меня есть эти 2 документа:

{ 
    _id: "doc1", 
    latlng: [52.52, 13.13],  // geoposition of doc1 
    links: ["doc2", "doc3"]  // links to doc2 and doc3 
} 

и

{ 
    _id: "doc2", 
    latlng: [53.53, 14.14],  // geoposition of doc2 
    links: ["doc1"]    // link to doc1 
} 

То, что я хотел бы иметь это пространственный индекс, где я могу запросить все ссылки в данной ограничительной рамки. Однако в функции карты CouchDB/GeoCouch, которая выполняется для doc1, у меня нет доступа к геопозиции doc2.

Кто-нибудь видит другой способ достижения пространственного индекса для ссылок в вышеуказанной ситуации?

ответ

0

В Apache CouchDB вы можете испускать ссылки as _id, запросить его с помощью include_docs=true и использовать функцию _list, чтобы преобразовать ее в любое удобное для вас.

К сожалению, GeoCouch не поддерживает параметр include_docs, поэтому он не будет работать. Для GeoCouch вам нужно будет сделать два запроса. Сначала получите ссылки, а затем получите все документы с keys=[the-ids]. Вы можете по желанию сделать второй запрос в представлении и использовать функцию _list для извлечения GeoJSON.

+0

Thx @vmx, на данный момент я делаю это в [couchmap] (https://github.com/andrenarchy/couchmap) точно так же, как вы предлагали. Я отправляю два запроса: один через индекс GeoCouch, чтобы получить все узлы в ограничивающей рамке с соответствующими идентификаторами ссылок. Второй запрос - это простой запрос с множественной выборкой со всеми идентификаторами из массивов ссылок. Поэтому, если это решение - лучшее, что я могу реализовать с GeoCouch, я доволен. :) – andrenarchy