Как передать два значения параметра в представления couchdb?

Я хочу воспроизвести этот SQL в представлениях CouchDB.

SELECT name,department FROM Persons where id = ? and group_id = ? ;

Как мне написать представление и представление запроса в CouchDB для этого SQL?

1 ответ

Вы можете написать вид, подобный этому:

function(doc) { 
  if (doc.person_id && doc.group_id) { 
    emit([doc.person_id, doc.group_id], {"name":doc.name,"department":doc.department});
  }
} 

Я изменил ваш идентификатор на person_id, поэтому его нельзя легко спутать с _id

Я использовал массив в качестве ключа для представления, так что вы можете легко запросить его следующим образом:

http://127.0.0.1:5984/testdb/_design/designdoc/_view/testview?key=[12,3]

Это будет более или менее похоже на этот запрос:

SELECT name, department FROM Persons where person_id = 12 and group_id = 3 ;

Вот статья о фильтрации и упорядочении по видам: http://barkingiguana.com/2009/01/22/filtering-and-ordering-couchdb-view-results/

В вики couchdb есть очень хорошая страница о просмотрах: http://wiki.apache.org/couchdb/HTTP_view_API

Эта глава в руководстве по couchdb объясняет ключи массива: http://guide.couchdb.org/draft/views.html

Другие вопросы по тегам