使用mongo-scala-driver从Scala中的Mongodb打印查询结果

vde*_*dep 5 scala mongodb mongodb-scala mongodb.driver

我试图在Scala中打印MongoDB查询的结果

val mongoClient: MongoClient = MongoClient()
val database: MongoDatabase = mongoClient.getDatabase("tableScala")
val collection: MongoCollection[Document] = database.getCollection("tableScala")

collection.find().printResults()
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:Cannot resolve symbol printResults.建议使用mongo-scala-driver版本的一些其他问题的答案1.2,因为版本1.1及以下没有实现printResults()

SBT档案:

name := "scalaMongoDriver"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "1.2.0-beta1"
Run Code Online (Sandbox Code Playgroud)

尝试使用以下方式手动打印:

collection.find().subscribe(
      (user: Document) => println(user.toJson()),                         // onNext
      (error: Throwable) => println(s"Query failed: ${error.getMessage}"), // onError
      () => println("Done")                                               // onComplete
    ) 
Run Code Online (Sandbox Code Playgroud)

得到以下信息:

信息:ReadPreferenceServerSelector {readPreference = primary}从集群描述ClusterDescription {type = UNKNOWN,connectionMode = SINGLE,serverDescriptions = [ServerDescription {address = localhost:27017,type = UNKNOWN,state = CONNECTING}]}中选择没有服务器.超时前等待30000毫秒

有没有办法在控制台中查看检索到的结果?

Luk*_*oon 6

您必须包含Helpers.scala文件才能使用该printResults()功能.它位于他们的github存储库Helpers.scala中.

这些辅助函数在打印值之前等待observable完成.