【发布时间】:2016-04-22 23:30:39
【问题描述】:
蒙古 3.2 scala版本 2.11.7 activator-1.3.9
所以我无法简单地获取整个集合
我尝试使用http://reactivemongo.org/ 页面上的文档并首先连接
def connect() {
// gets an instance of the driver
// (creates an actor system)
val driver = new MongoDriver
val connection = driver.connection(List("localhost"))
// Gets a reference to the database "plugin"
val db = connection("plugin")
// Gets a reference to the collection "acoll"
// By default, you get a BSONCollection.
val collection = db("acoll")
}
到目前为止一切顺利,我有 10 个连接(如果我没看错的话,正如预期的那样)。
然后我尝试修改“简单查询”文档中的内容,但遇到 IntelliJ 说 cursor[BSONDocument] 已弃用,我应该使用 cursor() 代替(我这样做了)。
我最终得到了:
def getAll(collection: BSONCollection) = {
val query = BSONDocument()
val filter = BSONDocument(
"_id" -> 1
)
val futureList: Future[List[BSONDocument]] =
collection.
find(query, filter).
cursor().
collect[List]()
futureList.map { list =>
list.foreach {
doc => println(s"found document: ${BSONDocument pretty doc}")
}
}
}
现在在我的控制器中,我正在与 Db.connect 连接(顺便说一下,Db 是一个对象 Db {},不知道我是否应该这样做,这在 Scala、Mongodb 和 Play 中是新的)
var collection = Db.connect()
println("Connected to db : " + collection)
var list = Db.getAll(collection)
...
问题,Db.connect() 似乎返回的不是 BSONCollection 而是 Unit
所以我想知道你们是否可以给我一个提示或像我这样的初学者的东西......
很抱歉,这似乎是一个愚蠢的问题,但我什至对文档感到困惑,因为我无法构建它的单个部分
谢谢
【问题讨论】:
标签: scala reactivemongo