【问题标题】:Simply get the whole collection只需获取整个集合
【发布时间】: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


    【解决方案1】:

    您的Dbval 声明结尾。

    如果您查看各种 Scala 教程,您会发现这意味着该函数确实返回 Unit

    如果你想返回值而不是在本地分配它,你必须删除声明,只保留最后一行 db("acoll")

    那么你的函数getAll也遭受了同样的误解。

    futureList.map { list =>
      list.foreach {
        doc => println(s"found document: ${BSONDocument pretty doc}")
      } // foreach = Unit
    } // so there's Future[Unit]
    

    不推荐使用使用connection("plugin")(又名MongoConnection.apply)的数据库解析。

    建议您深入ReactiveMongo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 2023-02-03
      相关资源
      最近更新 更多