2010-01-11 16 views
3

이 부르지 만, SQL에서 내가 자주 개발하는 동안 자신이 이런 일을 찾을 정확히 확실하지 : 그냥 무리를 가져온 경우CouchDB를 재귀 일회용 쿼리

DELETE FROM people WHERE name == "John" 

이 종종 사용된다 일괄 처리기로 데이터를 가져오고 전체 데이터 세트가 아닌 일부 결과 만 지우려는 경우 CouchDB에서이 작업을 수행하려면 어떻게해야합니까? 나는 쉽게지도 기능을

function(doc) { 
    if (doc.Name == "John") 
     emit(doc._id, null); 
} 

를 확인하고 반환 된 _ids를 삭제 ...하지만이 _ids을하고 h 제를 수행하기 위해 g 용 프론트 엔드 응용 프로그램의 일종을 작성하는 저를 필요로 할 수 있습니다. 때로는 내 쿼리가 훨씬 더 복잡하고 몇 가지 쿼리가 필요하며 삭제, 다른 쿼리 및 업데이트가 뒤따라야합니다.

지도/삭제 및지도/업데이트와 같은 종류의 일을하는 데 허용되는 방법은 무엇입니까?

답변

2

제외 된 방법은 당신이 설명하는 것과 거의 같습니다. 뷰를 쿼리 한 다음 반환 된 ID를 삭제하십시오. 그래도 소리는 나쁘지 않습니다. CouchDB 라이브러리를 사용하여 원하는 언어로 신속하게 스크립트를 작성하면 SQL의 로직을 더 많은 기능을 갖춘 언어로 옮길 수 있습니다. 일부는 이러한 이점을 고려할 수 있습니다. YMMV