以编程方式防止默认创建MongoDB数据库

时间:2013-06-27 23:11:25

标签: mongodb casbah

有没有办法通过Java API检查Mongo数据库是否存在,而无需在启动呼叫时创建数据库?

我目前正在使用Casbah(Scala驱动程序)与我们的Mongo实例进行交互

val mongo = MongoConnection(List(new ServerAddress("localhost",27017)))
val db = mongo.getDB("testXXX") 

API getDB似乎默认创建了一个数据库,我不希望这种情况发生

如果testXXX不存在,我会希望Mongo创建数据库,而是让我作为消费者决定它是否存在

是否有这样的API通过MongoDB java驱动程序或Casbah?

2 个答案:

答案 0 :(得分:3)

我正在使用以下(也使用Casbah / Scala):

val dbExists = !mongo.dbNames.contains("testXXX")

答案 1 :(得分:2)

默认情况下,在您要求该数据库收集集合之前,不会在服务器上创建数据库。

所以你可以val db = mongo.getDB("testXXX")做一个名为“testXXX”的数据库,除非你打db.getCollection("myCollectionName")之类的话,否则不会在你的MongoDB服务器上创建。