2013-01-21 4 views
0

J'utilise mongoDB + Java + SpringData. Est-il possible d'obtenir la collection actuelle, sans son nom?Obtenir le nom de collection actuel de MongoDB

Merci!

+0

Je ne suis pas sûr de ce que vous voulez dire en obtenant la collection actuelle? Vous pouvez plusieurs collections ... Si vous voulez simplement trouver les noms de toutes vos collections, vous pouvez aller à l'invite mongoDB (mongo your_database_name), puis demander une liste des collections: db.getCollectionNames() –

+0

I N'utilisez pas l'invite de commande en Java. J'utilise les données Spring. Je ne veux pas avoir affaire avec des noms de "code dur". Ça a l'air mauvais. –

Répondre

2

Ceci est ma solution (Java + SpringData).

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

Si vous souhaitez interagir avec le DBCollection directement, vous devriez plutôt faire via l'interface CollectionCallback<T> et l'utiliser comme ceci:

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

En utilisant la fonction de rappel a l'avantage que vous obtenez les MongoException s potentiellement être jeté de votre propre code en cours de conversion dans la hiérarchie DataAccessException de Spring.

Questions connexes