2012-05-15 2 views
1

나는 scala와 casbah의 초보자입니다. casbah를 사용하여 mongo 복제본 연결을 만들려고합니다. 이것은 내 코드입니다. 나는 나의 mongo 복제본 설정이 정확하다는 것에 대해 꽤 확신한다. 루비를 통해 연결을 만들면 훌륭하게 작동합니다. 뭔가 어리석은 걸 놓치고있어. 내가봤을 때, 나는이 문서를 얻었고 나는 이것을 참고 용으로 사용하고있다.Casbah와 Mongo 복제본 연결을 어떻게 만듭니 까?

http://api.mongodb.org/scala/casbah/current/scaladoc/com/mongodb/casbah/MongoConnection

import com.mongodb.casbah.Imports._ 

object MongoAnalysisDB { 
    def main(args: Array[String]) = { 
    //that connection 
    val addresses = List("127.0.0.1:27018", "127.0.0.1:27019", "127.0.0.1:27020") 
    val mongoConn = MongoConnection(replicaSetSeeds: addresses) 
    val mongoDB = mongoConn("vimana-sandbox-dup") 
    val mongoColl = mongoConn("vimana-sandbox-dup")("utilization.metrics.cycledowntime") 


    //that query 
    val loadEvent = MongoDBObject("period" -> "PT1H") 
    val cursor = mongoColl.find(loadEvent) 
    val mtcevent = mongoColl.findOne(loadEvent) 

    //that document 
    println(mtcevent) 
    } 
} 

$ .html 중에서

나는 다음과 같은 오류가 발생합니다.

[info] Compiling 1 Scala source to /home/deepak/scala-mongo-oplog-watcher/target/scala-2.9.1/classes... 
[error] /home/deepak/scala-mongo-oplog-watcher/src/main/scala/reader.scala:6: ')' expected but '(' found. 
[error]  val mongoConn = MongoConnection(replicaSetSeeds: List("127.0.0.1:27018", "127.0.0.1:27019", "127.0.0.1:27020")) 
[error]              ^
[error] /home/deepak/scala-mongo-oplog-watcher/src/main/scala/reader.scala:6: ';' expected but ')' found. 
[error]  val mongoConn = MongoConnection(replicaSetSeeds: List("127.0.0.1:27018", "127.0.0.1:27019", "127.0.0.1:27020")) 
[error]                             ^
[error] two errors found 
[error] {file:/home/deepak/scala-mongo-oplog-watcher/}default-b16d47/compile:compile: Compilation failed 
+1

당신이 ServerAddress 내부에 IP 문자열을 포장하려고 했습니까? – bjartek

답변

3

ip 문자열과 포트를 ServerAddress으로 마무리했습니다.

import com.mongodb._ 
import com.mongodb.casbah.Imports._ 

object MongoAnalysisDB { 
    def main(args: Array[String]) = { 
    //that connection 
    val addresses = List(new ServerAddress("127.0.0.1" , 27018), new ServerAddress("127.0.0.1" , 27019), new ServerAddress("127.0.0.1" , 27020)) 
    val mongoConn = MongoConnection(addresses) 
    val mongoDB = mongoConn("vimana-sandbox-dup") 
    val mongoColl = mongoConn("vimana-sandbox-dup")("utilization.metrics.cycledowntime") 


    //that query 
    val loadEvent = MongoDBObject("period" -> "PT1H") 
    val cursor = mongoColl.find(loadEvent) 
    val mtcevent = mongoColl.findOne(loadEvent) 

    //that document 
    println(mtcevent) 
    } 
} 

은 참조 : 는 http://mongodb.github.io/casbah/3.1/reference/connecting/#connecting-to-replicasets-mongos

1

당신은 또한 MongoClientURI

를 사용하여 RS 연결을 사용할 수 있습니다
val mongoClient = MongoClient(MongoClientURI("mongodb://localhost:27018,localhost:27019,localhost:27020")) 
관련 문제