2013-08-06 6 views
2

MongoDB는 임의의 숫자와 유형의 키/값 쌍을 으로 쓸 수 있습니다.으로 문서를 작성할 수 있습니다. 내 문서가 실제로 스키마가없는이 기능을 사용한다고 가정하고 읽는 방법을 관리하려면 기본적으로 응용 프로그램 코드 (Java 사용)가 데이터베이스에서 읽기를 관리하는 방법을 설명합니다.MongoDB에서 Java를 사용하여 스키마가없는 문서를 읽는 방법

+0

Java 클라이언트를 사용하여 mongodb에 연결하는 방법을 알고 싶습니까? [get-started-with-java-driver] (http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver) – roby

+0

확실히 아닙니다. 다른 구조를 가지고있는 문서를 읽으려고하는데, 다른 구조에 의존하는 읽기를 하드 코딩하는 대신에. 나는 좀 더 효율적인 방법을 찾고있다. – hershey92

+1

모든 NoSQL 데이터베이스가 스키마 및/또는 문서 지향 데이터베이스가 아닙니다. 귀하의 질문을 편집하고 "NoSQL"을 "MongoDB"로 대체했습니다. 이것이 의미하는 것 같기 때문입니다. – Philipp

답변

1

java 드라이버는 Map<String, Object>으로 구현되어 사용되는 BasicBSONObject으로 문서를 읽고 씁니다. 그런 다음 응용 프로그램 코드가이 맵을 읽고 적절한 유형으로 값을 캐스팅해야합니다.

Morphia 또는 Spring MongoDB과 같은 매핑 프레임 워크는 BSONObject를 클래스로 변환하거나 그 반대로 도울 수 있습니다.

직접 해보고 싶을 때 BasicBSONObject를 사용하는 Factory 메소드를 사용하고, 가지고있는 키와 값을 확인한 다음이 정보를 사용하여 적절한 클래스의 객체를 생성하고 반환합니다.

+0

맞아요,하지만 내 진짜 문제는 6-8 모델을 다루는 것입니다 (morhpia와 같은 ODM을 사용하는 경우). 일반적으로 각 문서가 다르므로 올바른 모델 (.class)로 매핑해야합니다. 내 의심은 런타임에 결정을 내리는 방법입니다. 그것은 스위치/if-else-if 구조가되어야합니다. 대부분 코드를 작성하는 가장 좋은 방법은 아니며, 스마트 한 대안이 될 것입니다. – hershey92

+0

실제 문제는 애플리케이션 코드에 있으며, 더 나은 코드를 모듈화해야합니다. – hershey92

+0

수 있습니까? 질문을 편집하고 문서가 어떻게 달라질 수 있는지 예를 들려주십시오. –

관련 문제