2013-01-21 128 views
0

我正在使用mongoDB + Java + SpringData。 是否有可能獲得目前的收藏,沒有它的名字?獲取MongoDB當前集合名稱

謝謝!

+0

我不確定你的意思是通過獲得當前的集合?您可以使用多個集合...如果您只想查找所有集合的名稱,可以轉到mongoDB提示符(mongo your_database_name),然後詢問集合的列表:db.getCollectionNames() –

+0

I不要在Java中使用命令提示符。我使用Spring數據。我不想與「硬代碼」名稱進行交易。它看起來不好。 –

回答

2

這是我的解決方案(Java + SpringData)。

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

如果你想與DBCollection直接交互,你倒是應該通過CollectionCallback<T>接口這樣做,這樣使用它:

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

使用回調的優點是,你得到的MongoException小號可能會從您自己的代碼中拋出,轉換爲Spring的DataAccessException層次結構。