2014-09-02 4 views
0

insert delete ect 결과가 필요합니다. (쓰기 작업) Mongo 버전 2.6 및 spring-data-mongodb 1.5.4를 사용합니다. mongo v 2.6부터 WriteResult (http://docs.mongodb.org/manual/reference/method/db.collection.insert/ 반환 참조)를 볼 수 있음을 알고 있습니다. 스프링 데이터에서 볼 수 있습니까? - 몽고?springdata mongodb로 작업 결과를 작성하십시오.

감사합니다.

+0

무엇을 의미합니까? 여기에 많은 세부 사항이 없습니다. 현재 쉘에서 얻은 것과 같은 결과를 기대합니까? –

+0

나는 비슷한 것을 필요로한다. WriteResult result = mongoTemplate.insert(MyObject);

+0

아직도 무엇을 요구하고 있는지 명확하지 않다. 이것은 귀하의 질문을 편집하고 자신을 더 잘 설명 할 수있는 기회입니다. –

답변

0

참조하는 BulkWriteResult의 유일한 장소는 Bulk Operations API을 사용한 작업 결과입니다.

이것은 MongoDB 2.6에서 소개되었으므로 서버에서 작동하려면 최소한 버전이 필요합니다. 해당 버전에서 쉘의 모든 도우미 메서드는 실제로 "내부"명령의 "일괄"변형을 사용하기 때문에 이러한 응답을 셸에서 볼 수 있습니다. 따라서 하나의 작업 만 호출되는 경우에도 지원할 서버에 연결될 때 실제로 "대량"변형이 사용됩니다.

대량 작업은 기본 Java 드라이버에서 구현되지만 호출하기 전에 Spring mongoOperations 컨텍스트에서 기본 드라이버 컬렉션 객체를 가져와야합니다.

이와 같이 메소드 서명 및 리턴은 Spring Data 구현 메소드와 같지 않지만 기본 드라이버 메소드입니다. 하지만 물론 액세스 할 수 있으며 코드에서 사용할 수 있습니다.

DBCollection collection = mongoOperation.getCollection("collection"); 
    BulkWriteOperation bulkWriteOperation = 
     collection.initializeOrderedBulkOperation(); 

    DBObject content = new BasicDBObject("field","value"); 
    bulkWriteOperation.insert(content); 

    BulkWriteResult writeResult = bulkWriteOperation.execute(); 

    System.out.println(writeResult); 

아마도 하루는 통합이 더 완벽 할 것입니다. 그러나 이것은 현재 코어 드라이버를 기반으로 한 대부분의 프레임 워크 구현이 뒤쳐져있는 영역입니다. 사실 핵심 드라이버는 현재 레거시 메서드와 대량 메서드를 분리하므로 일반 구현은 이전 버전과의 호환성을 위해 셸에서 도우미와 마찬가지로 가장 잘 처리됩니다.

관련 문제