2013-01-21 9 views
0

mongoDB + Java + SpringData를 사용 중입니다. 이름없이 현재 컬렉션을 가져올 수 있습니까?MongoDB 현재 수집 이름 얻기

감사합니다.

+0

현재 컬렉션을 가져 오는 것이 무엇을 의미하는지 모르겠습니다. 여러 콜렉션을 가질 수 있습니다 ... 모든 콜렉션의 이름을 찾으려면 mongoDB 프롬프트 (mongo your_database_name)로 이동하여 콜렉션 목록을 요청하십시오. db.getCollectionNames() –

+0

I Java에서는 명령 프롬프트를 사용하지 마십시오. 나는 스프링 데이터를 사용한다. "하드 코드"이름을 다루고 싶지 않습니다. 그것은 나빠 보인다. –

답변

2

이것은 내 솔루션 (Java + SpringData)입니다.

@Autowired 
    private MongoTemplate mongoTemplate;  
DBCollection collection = mongoTemplate.getCollection(mongoTemplate.getCollectionName(MyDocument.class))); 
0

직접 당신이 오히려 CollectionCallback<T> 인터페이스를 통해 그렇게하고 다음과 같이 사용한다 DBCollection와 상호 작용하려면 : 당신이 MongoException의를 얻을이 콜백을 사용하여

mongoTemplate.execute(new CollectionCallback<Void>() { 
    public Void doInCollection(DBCollection collection) throws MongoException { 
    // Implement your code here 
    } 
}); 

장점이있다 잠재적으로 자신의 코드가 Spring의 DataAccessException 계층으로 변환 됨으로써 발생합니다.