2013-02-14 4 views
4

MongoDB에 삽입되는 데이터가 스키마와 일치하는지 확인하는 방법을 찾고 있습니다. 모든 필수 필드와 올바른 데이터 유형을 가지고 있습니다. Mongo 자체는 도식입니다.하지만 Mongo 드라이버에 전달하기 전에 응용 프로그램 수준에서 데이터의 유효성을 검사 할 수 있다면 좋을 것입니다.MongoDB에서 스키마 유효성 검사 적용

JSON-Schema를 살펴 보았습니다. 가장 큰 망설임은 스키마 유효성 검사를 위해 하나의 Java 라이브러리 만 찾을 수 있다는 것입니다. 신뢰할 수 있는지 여부와 Apache 또는 Google에서 지원하는 라이브러리를 선호하는지 여부는 알지 못합니다.

필자는 특별히 유효성 검사 프레임 워크가 아닌 Apache Thrift, Avro 및 Protocol Buffer를 살펴 보았지만 각각 스키마 개념을 갖고 있습니다. 유효성 검사를 수행하기 위해 그 중 하나를 피기 백하는 방법이 있다면 나는 흥미로울 것이다.

제안 사항? 아니면 몽고의 도식성을 받아들이고 데이터의 유효성을 검사하는 것을 괴롭히지 않아야합니까?

+1

아파치 재단이나 Google이 만든 것이 전부는 아닙니다. 즉 Facebook도 물건을 만듭니다. 그리고 아니오, 데이터를 검증해야합니다. 하나의 공통된 방법은 활성 레코드 모델을 사용하여 정의 된 속성 세트를 검증하는 것입니다. – Sammaye

+2

감사합니다. Apache와 Google에 대한 내 성명을 분명히 밝혀야합니다. 저는 개발자 또는 커뮤니티의 지원 실적이 강한 프로젝트를 선택하는 것을 좋아합니다. 따라서 아파치 나 지하실에있는 한 명의 개발자 이건간에 5 년 동안 도서관에 버그가 발견되면이를 해결할 수있는 좋은 길을 열어 줄 것이라는 확신이있는 한 중요하지 않습니다. – PatTheWolf

+0

그래, 내가 무슨 말하는지 알지 :) 그것은 내가 발견 한대로 항상 소프트웨어가 닫히거나 오픈 소스에 문제가있다 – Sammaye

답변

5

그들은 document validation (slides)를 첨가.

당신은 거의 모든 몽고 쿼리 연산자를 사용하여 validator 옵션을 사용하여, 각각의 컬렉션에 대한 유효성 검사 규칙을 지정할 수 있습니다 ($geoNear, $near, $nearSphere, $text$where 제외). 내 answers에서 자세한 내용을 볼 수 있습니다.

+0

하지만 내 이해에 따르면 MongoDB의 문서 유효성 검사는 스키마 (XSD 또는 JSON 스키마)에 대한 유효성 검사가 아닙니다. . –

3

아직도 찾고 있지만 개체 문서 매퍼 (ODM)가 트릭을 수행하는지 확신 할 수 없습니다.

Morphia 또는 Spring Data - MongoDB을 모두 체크 아웃 했으므로 문서를 Java 클래스에 직접 매핑하므로 형식 안전성 문제가 발생합니다. 곧 몽고 3.2 버전에서는