2016-08-12 2 views
1

MongoDB 값을 SimpleDBObject에서 변환하지 않고 내 형식의 개체로 읽을 수있는 방법이 있습니까?MongoDB 사용자 지정 형식으로 문서 캐스팅

나는 coll.find()과 모음에서 모든 문서를 얻기 위해 시도했지만 나는 그들을 통해 반복 할 때 나는 인터페이스 com.mynamespace.models.interfaces.Profile을위한 코덱을 찾을 수 없습니다

를 얻을.

올바른 방법은 무엇인가요? 나는 표준 자바 드라이버를 사용한다.

지금까지 C# 및 Couchbase에서 단순히 사용자 지정 유형에 문서를 쓰거나 읽는 중이었습니다. 여기 어떻게 된거 야?

답변

0

내가 과거에 사용했던 것은 Mongo Jack입니다. 이것은 중개자 SimpleDBObject없이 Mongo 스트림의 POJO를 문서에 따라 직접 매핑하는 간단한 래퍼를 제공합니다. 또한 Jackson 라이브러리를 사용하므로 Jackson 직렬화 및 비 직렬화 주석을 사용할 수 있습니다.

이 웹 사이트의 말씀입니다 :

Deserialises가 거기 MongoDB를위한 (아니라면) 빠른 객체 매퍼 중 하나 만드는 MongoDB를 스트림에서 직접 객체를 조회.

아마도 이것은 무엇을 찾고 있습니까?

다음은 웹 사이트에서 예제 :

JacksonDBCollection<MyObject, String> coll = JacksonDBCollection.wrap(dbCollection, MyObject.class, 
     String.class); 
MyObject myObject = ... 
WriteResult<MyObject, String> result = coll.insert(myObject); 
String id = result.getSavedId(); 
MyObject savedObject = coll.findOneById(id); 
+0

예, 그렇습니다. 그래서, 바로 거기에 몽고 + 자바 조합에서 직접 직렬화/역 직렬화 같은 것이 있습니까? 제 3 자 라이브러리가 없으면 웹 사이트의 설명에 따라 – ArkadyB

+0

@ArkadyB를 의미합니다. 웹 사이트의 Mongo 스트림에서 직접 deserialize합니다. "Deserialises는 MongoDB 스트림에서 객체를 직접 쿼리하여 (그렇지 않은 경우) 밖에있는 MongoDB를위한 가장 빠른 객체 매퍼 "- Mongo Jack website – Himself12794

+0

@ArkadyB 네, 내 대답에 하나를 포함 시켰습니다. 더 많은 것을 원한다면 [튜토리얼] (http://mongojack.org /tutorial.html)을 참조하십시오. 조언을 주신 덕분에 – Himself12794

0

몽고 - 자바 드라이버의 새로운 Codec 인프라> = 3.0 꽤 많이 당신이 원하는 않습니다. 코덱을 수동으로 만들어야하지만 create codecs automatically에 대한 몇 가지 노력이있었습니다.

Morphia와 Spring Data MongoDB와 같은 다른 본격적인 ODM 프레임 워크가 있습니다.

0

Morphia은 공식적으로 MongoDB 및 Java 용 ODM입니다. 사용자 정의 코덱을 Java 객체 용으로 작성할 수 있으므로 직렬화가 응용 프로그램에 거의 투명 해집니다. Spring 데이터와 mongojack도 훌륭한 선택입니다. 요즘에는 어떻게 능동적 인 mongojack이 개발되고 있는지 잘 모르겠지만 스프링 데이터는 활발히 유지되고 있습니다.

관련 문제