2012-05-15 2 views
1

Я новичок в scala и casbah. Я пытаюсь создать соединение replicaset mongo, используя casbah. Это мой код. Я уверен, что моя настройка реплики mongo правильная. Когда я создаю соединение через рубин, он отлично работает. Здесь я пропустил что-то глупое. Когда я googled, я получил эту документацию, и это то, что я использую для справки.Как создать соединение репликации Mongo с Casbah?

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

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) 
    } 
} 

Я получаю следующее сообщение об ошибке.

[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

Вы пробовали оборачивать ваши 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

Вы можете также использовать соединение RS с помощью MongoClientURI

val mongoClient = MongoClient(MongoClientURI("mongodb://localhost:27018,localhost:27019,localhost:27020"))