"클래식 51CTO" MongoDB 및 Couchdb는 NoSQL 데이터베이스 종종 볼 수 있습니다 지금 유행 그리고 공통점이 많은, JSON 문서 형식을 사용 하는 두 문서 지향 데이터베이스 하지만 쿼리에, 차이 분명, COUCHDB MONGODB 지원 동적 쿼리 (전통적인 관계형 데이터베이스에 대 한 임시 쿼리를 본질적으로 유사한), 동안 미리 정의 된 보기 (기본적으로 자바 mapreduce 기능), 요구 하 고 더 중요 한 것은, 그것에 올 때 쿼리, COUCHDB API는 편안한, MongoDB API는 더 네이티브 쿼리를 드라이버를 사용 하 여 코드에서 이루어집니다.
예를 들어 COUCHDB를 사용 하면 일부 데이터를 삽입할 Groovy의 restclient 등 일부 외부 도구를 사용할 수 있습니다.
정적 Groovyx.net.http.ContentType.JSON 가져오기 groovyx.net.http.RESTClient 데 프 클라이언트 가져오기 새로운 Restclient = ("http: localhost:5498 / ") 응답 = Client.put (경로:" parking_tickets/1234334325 ", Contenttype:json, Requestcontenttype : JSON, 몸: [장교: 로버트 회색, 위치: "199 성 박사", vehicle_plate: "뉴욕 77777", 공격: "아무 주차 구역에 주차", 날짜: "2010/07/31"]
이 경우에 유의 나 주차 위반 딱지에 대 한 숫자 (1234334325)를 지정 하며, 덧붙여, / _uuids 경로에 HTTP GET 요청 같은 UUID를 사용 하 여 couchdb를 필요.
51CTO 편집자 추천: 강한 망고: MongoDB에
예를 들어 장교 회색에 의해 모든 티켓을 알아낼 싶 었 어 요, 만약 나 했다 그래서 난 빨리 로버트 크거나 장교 속성을 추출 하는 함수를 구현할 수 있는 JavaScript mapreduce 함수를 실행 하는 간단한 URL은 뷰 정의 모든 회색의 문서.
기능 (DOC) {경우 (Doc.officer = = "로버트 회색") {Emit (null, DOC); } }
이 보기는 이름을 해야 하 고 내가이 보기에는 HTTP GET 요청을 보낼 때 난 적어도 문서를 얻을 수 있다.
응답 = client.get (경로: "Parking_tickets/_view/by_name/officer_grey", Contenttype:json, Requestcontentt Ype:json) response.data.total_rows 주장 1 response.data.rows.each{assert it.value.officer = = = = "로버트 회색" }
일반적으로, 신속 하 게 임시 편리한 전화 쿼리 정보를 보낼 수 없습니다 COUCHDB를 사용 하는 경우 먼저 쿼리 (뷰 라고도 함)를 정의 고 그것을 노출 해야 합니다. 반대로, MongoDB를 사용 하 여, 그것은 많은 다른 대부분의 관계형 데이터베이스에서 그리고 실행 시 보고 싶어 어떤 정보를 쿼리할 수 있습니다.
예를 들어 여기 주차 티켓 인스턴스 MongoDB의 기본 Java 드라이버를 사용 하 여 구현 하는:
Dbcollection 콜 = db.getcollection ("Parking_tickets"); Basicdbobject 의사 = 새로운 Basicdbobject (); Doc.put ("장교", "로버트 회색"); Doc.put ("위치", "199 성 박사"); Doc.put ("Vehicle_plate", "뉴욕 77777"); ... Coll.insert (DOC);
나중 내가 로버트 스미스에서 발급 하는 주차 티켓을 확인 하려면, 단순히 같은 장교 특성 값 수정:
basicdbobject 쿼리 = 새로운 Basicdbobject (); Query.put ("장교", "로버트 스미스"); Dbcursor cur = coll.find (쿼리); 동안 (Cur.hasnext ()) {System.out.println (Cur.next ()); }
MongoDB 및 couchdb 많은 유사점을가지고 있지만 쿼리 측면 중요 한 차이, 비록 COUCHDB를 MapReduce를 사용 해야 하지만 MongoDB 동적 지향 쿼리 물론, MongoDB는 MapReduce를 지 원하는 것입니다.
원래 제목: MongoDB 및 couchdb: 다른 쿼리