2013-03-21 79 views
0

我正在尝试与Scala的Casbah MongoDB工具包一起工作。我在本地主机上运行MongoDB,它工作正常。然而,下面的代码什么也不做 - 没有数据库和没有收集创建。并没有抛出异常:Scala的Casbah MongoDB工具包:无法创建连接和集合

package test.scalamongo 

import com.mongodb.casbah.Imports._ 

object Simple { 

    def main(args: Array[String]): Unit = { 
try { 
    // Connect to default - localhost, 27017 
    val mongoClient = MongoClient() 
    val mongoDB = mongoClient("casbah_test") 
    val mongoColl = mongoClient("casbah_test")("test_data") 
    println("Ok now?") 
} catch { 
    case e: Throwable => 
    println("Exception !!!") 
    e.printStackTrace() 
} 
    } 

} 

我在想什么? 谢谢!

+0

你的意思是他们不是在mongo方创建的? – 2013-03-21 21:00:16

+0

是的,Casbah对Mongo数据库没有任何帮助。 – 2013-03-21 21:02:24

回答

0

你必须明确地创建集合:

val mongoClient = MongoClient() 
val mongoDB = mongoClient("casbah_test") 
val mongoColl = 
    if (mongoDB.collectionExists("test_data")) { 
    mongoDB("test_data") 
    } else mongoDB.createCollection("test_data", options: DBObject) 

可能的选项:

上限 - 布尔:如果集合封顶
大小 - INT:集合大小
最大 - INT:最大数的文件

+0

这是否意味着在Casbah中我无法打开连接到Mongo而没有创建一些集合? – 2013-03-21 21:17:41

+0

@AntonAshanin你可以(检查mongo日志),但是连接到mongo和潜伏着一个还没有存在并且什么都不做的集合的点是什么? – 2013-03-21 21:20:22

+0

如何与Casbah检查Mongo启动并运行而不创建一些数据库和集合?如果有人能指点我一个简单的端到端Casbah应用程序示例,它也会很好。谢谢! – 2013-03-21 21:41:33