새로운 응용 프로그램에 CouchDB를 사용하려고하는데 여러 필드로 정렬하고 여러 필드로 필터링하는보기를 만들어야합니다. 다음은 예제 문서입니다. _id 및 _rev를 생략하여 입력 내용을 저장하지 않았습니다.동일한보기에서 CouchDB 정렬 및 필터링
{
"title": "My Document",
"date": 1279816057,
"ranking": 5,
"category": "fun",
"tags": [
"couchdb",
"technology"
],
}
설명서를 통해 순위와 같은 필드별로 정렬하는보기를 쉽게 만들 수 있다는 것을 알게되었습니다.
function(doc) {
emit(doc.ranking, doc);
}
나는 또한 내가 쉽게
function(doc) {
emit(doc.category, doc);
}
http://127.0.0.1:5984/database/_design/filter/_view/filter?key=%22fun%22
내 문제는 카테고리로 필드로 내가 모두 같은 시간에 이러한 일들의 무리를 할 필요가있다 필터링 할 수 있다는 것을 배웠다. 카테고리 및 태그를 기준으로 필터링하고 싶습니다. 필자는 "재미"범주의 문서와 "couchdb"태그 만 필터링 할 수 있어야합니다. 내림차순으로 정렬 한 다음 오름차순으로 정렬 한 다음 제목순으로 정렬하여 필터링 된 결과를 정렬하려고합니다.
모든 정렬 및 필터링을 결합한 하나의보기를 어떻게 만들 수 있습니까?
감사합니다. 정말 도움이 되긴하지만 조금 더 도움이 필요합니다. 동일한 문서를 반복해서 발행하기 때문에 한 번만 각 문서를 제공 할 수 있습니까? – Apreche
각 그룹을 각각의보기로 나눌 수 없다면 할 수 없습니다. 예를 들어,/_design/articles/_view/byRanking,/_design/articles/_view/byDate 등이 있습니다. 모든 것을이보기로 유지하려면 클라이언트에서 데이터를 관리해야합니다. 또는 문서의 _id 또는 null을 값으로 반환하는 것에 대한 설명을 따를 수 있습니다. 두 번째 호출을 통해 문서를 한 번 가져올 수 있습니다. –
오, 잠깐. 나는 그것을 알아. 나는 네가 내가 원한 것을 오해 한 것 같아. 순위, 날짜 및 제목별로 동시에 정렬하고 싶습니다. SQL에서는 "오름차순, 날짜 내림차순, 제목 오름차순에 의한 정렬"이 될 것입니다. 하나만 내보내고 시작 키와 끝 키를 사용하여 필터링 할 수 있으며, 순서는 이미 완료됩니다. 감사! – Apreche