0
私は問題を抱えています。私はmongoと通信しようとしているscala mavenプロジェクトを作成しました。私のプロジェクトは成功裏にビルドされています。プロジェクトを実行してもエラーは発生しませんが、mongodbにデータがまだ挿入されていません。mongodb with scala mavenプロジェクト
mongo-cliで手動でデータを挿入すると、コードで読み取ることができますが、単一のレコードを挿入することさえできません。 私が間違いを犯している場所を見つけるのを手伝ってください。 マイMongoのバージョンは3.2.10
App.scala
package com.assignment.scala
import org.mongodb.scala._
import org.mongodb.scala.model.Aggregates._
import org.mongodb.scala.model.Filters._
import org.mongodb.scala.model.Projections._
import org.mongodb.scala.model.Sorts._
import org.mongodb.scala.model.Updates._
import org.mongodb.scala.model._
/**
* @author ${user.name}
*/
object App {
def main(args: Array[String]) {
println("Calling insertDoc==")
insertDoc()
}
def insertDoc() = {
val mongoClient = MongoClient()
val database = mongoClient.getDatabase("assignment")
val collection = database.getCollection("links")
println("collection find : " + collection.find())
collection.find().subscribe(
(user: Document) => println("document------------"+user.toJson()),
(error: Throwable) => println(s"Query failed: ${error.getMessage}"),
() => println("Done"))
collection.drop()
val bufferedSource = io.Source.fromFile("/home/impadmin/ServiceSource/ml-latest-small/links.csv")
var firstLine = List[String]();
var docList = List[Document]();
for ((line,count) <- bufferedSource.getLines.zipWithIndex) {
val cols = line.split(",").map(_.trim)
if (firstLine.size <= 0 && cols.length > 0) {
firstLine = cols.toList;
} else {
var doc: Document = Document("_id" -> count)
for ((a, b) <- firstLine zip cols) {
doC++= Document(a -> b)
}
docList = docList :+ doc
collection.insertOne(doc)
}
}
val doc3 = Document("name" -> "MongoDB", "type" -> "database",
"count" -> 1, "info" -> Document("x" -> 203, "y" -> 102))
collection.insertOne(doc)
collection.find().subscribe((doc1: Document) => println(doc1.toJson()),
(e: Throwable) => println(s"There was an error: $e"))
}
}
なぜあなたは 'doc3'を作成し、それを使用することはありませんか? – jwvh
doc3も挿入しようとしましたが、挿入されていません。私はmongoが読み取り専用操作をサポートしていますが、コレクションの挿入や削除はサポートしていないと思います。 –