2

クイックツアーに従って、scala 2.11.7 を使用して mongodb 3.0.7 にドキュメントを保存しようとしました: http://mongodb.github.io/mongo-scala-driver/1.0/getting-started/quick-tour/しかし、私は実行します例と何も起こりません。データベース、コレクション、およびドキュメントは作成されません。

  def main(args: Array[String]) {
    println("Start")
    val mongoClient: MongoClient = MongoClient()
    val database: MongoDatabase = mongoClient.getDatabase("mydb")
    val collection: MongoCollection[Document] = database.getCollection("test");
    val doc: Document = Document("_id" -> 0, "name" -> "MongoDB", "type" -> "database",
      "count" -> 1, "info" -> Document("x" -> 203, "y" -> 102))
    val observable: Observable[Completed] = collection.insertOne(doc)
    observable.subscribe(new Observer[Completed] {    
      override def onNext(result: Completed): Unit = println("Inserted")
      override def onError(e: Throwable): Unit = println("Failed")
      override def onComplete(): Unit = println("Completed")
    })

    mongoClient.close()
    println("End")
  }

コンソール:

Start
dic 13, 2015 3:05:16 PM com.mongodb.diagnostics.logging.JULLogger log
INFORMACIÓN: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
dic 13, 2015 3:05:16 PM com.mongodb.diagnostics.logging.JULLogger log
INFORMACIÓN: Opened connection [connectionId{localValue:1, serverValue:6}] to localhost:27017
dic 13, 2015 3:05:16 PM com.mongodb.diagnostics.logging.JULLogger log
INFORMACIÓN: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 0, 7]}, minWireVersion=0, maxWireVersion=3, electionId=null, maxDocumentSize=16777216, roundTripTimeNanos=893710}
End

何が欠けている?

4

1 に答える 1

3

mongoClient.close()「Observable」が完了する前に呼び出されていると思います。どうすればエレガントな方法でこれを解決できるのだろうと思っています。しかし、これに関しては実際のアプリケーションではなく、いくつかをテストしているだけだと思います。Console.readLine() を前に置くことができるmongoClient.closeので、表示されInsertedたら任意のキーを押すとアプリケーションが終了します。

 def main(args: Array[String]) {
    println("Start")
    val mongoClient: MongoClient = MongoClient()
    val database: MongoDatabase = mongoClient.getDatabase("mydb")
    val collection: MongoCollection[Document] = database.getCollection("test");
    val doc: Document = Document("_id" -> 0, "name" -> "MongoDB", "type" -> "database",
      "count" -> 1, "info" -> Document("x" -> 203, "y" -> 102))
    val observable: Observable[Completed] = collection.insertOne(doc)
    observable.subscribe(new Observer[Completed] {    
      override def onNext(result: Completed): Unit = println("Inserted")
      override def onError(e: Throwable): Unit = println("Failed")
      override def onComplete(): Unit = println("Completed")
    })
    scala.Console.readLine()
    mongoClient.close()
    println("End")
  }
于 2015-12-13T16:17:20.843 に答える