2010-11-10 29 views
-4

我想在MongoDB和Scala中執行CRUd操作。 我已經編寫了下面的代碼。這段代碼正在編譯成功,但給出了運行時異常。我正在使用scala 2.8.can,任何1個幫助我?如何移除MongoInternalException?

錯誤而執行:線程 「main」 com.mongodb.MongoInternalException

例外: DBPort.findOne在COM在com.mongodb.DBPort.findOne(DBPort.java:153) 失敗 。 mongodb.DBPort.runCommand(DBPort.java:159) 在com.mongodb.DBTCPConnector.testMaster(DBTCPConnector.java:369) 在com.mongodb.Mongo。(Mongo.java:140) 在com.mongodb.Mongo 。(Mongo.java:124) at com.mongodb.Mongo。(Mongo.java:81) at QuickTour.main(QuickTour.java:16) Caused通過:java.io.IOException:無法連接到[/127.0.0.1:8005] bc:java.net.ConnectException:連接被拒絕:連接 在com.mongodb.DBPort._open(DBPort.java:205) 在com.mongodb.DBPort.go(DBPort.java:85) 在com.mongodb.DBPort.findOne(DBPort.java:145) ... 6個
// crud.scala 

import com.mongodb.BasicDBObject; 
import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.DBCursor; 
import com.mongodb.Mongo; 

object crud 
{ 
    def main(args:Array[String]) 
    { 
    while(true) 
    { 
     println("") 
     println("1.Insert ") 
     println("2. Retriever ") 
     println("3. Update") 
     println("4. Delete") 
     println("5. Exit") 
     println("") 
     println("Enter choice : ") 

     val ch=Console.readInt 

     ch match 
     { 
     case 1=> 
      insert(); 
     case 2=> 
      retrieve() ; 
     case 3=> 
      update(); 
     case 4=> 
      delete(); 
     case 5=> 
      System.exit(0) 
     } 
    } 
    } //main 

    def insert() 
    { 
    println("Enter the rollno") 
    var roll=Console.readInt 

    println("Enter the name") 
    var name=Console.readLine 

    println("Enter the age") 
    var age=Console.readInt 

    println("Enter the city") 
    var city=Console.readLine 

    println("Enter the marks") 
    var marks=Console.readInt 

    val mongo = new Mongo(); 

    var databaseName = mongo.getDB("mydb") 
    var collectionName = databaseName.getCollection("student") 
    val dbObject = new BasicDBObject() 
    dbObject.put("rollno", "roll") 
    dbObject.put("name", "name") 
    dbObject.put("age", "age")   
    dbObject.put("city", "city")   
    collectionName.insert(dbObject); 
    println("Inserted succesfully"); 
    } 

    def retrieve() 
    { 
    println("Enter the rollno") 
    var r=Console.readInt 
    val mongo = new Mongo() 

    var databaseName = mongo.getDB("mydb") 
    var collectionName = databaseName.getCollection("student") 

    val query=new BasicDBObject(); 
    val query1=new BasicDBObject(); 
    query.put("marks",new BasicDBObject("$gt","70")); 
    var cursor = new DBCursor(collectionName,query,query1) 
    println("The list of students is") 
    while(cursor.hasNext) 
    { 
     println(cursor.next()); 
    } 
    } //retrieve 

    def update() 
    { 
    println("Enter the rollno of student to be updated") 
    var no=Console.readInt 

    val mongo = new Mongo() 

    var databaseName = mongo.getDB("mydb") 
    var collectionName = databaseName.getCollection("student") 
    val query=new BasicDBObject(); 
    val query1=new BasicDBObject(); 
    query.put("rollno",new BasicDBObject("$eq",no)); 
    var cursor = new DBCursor(collectionName,query,query1) 
    } 

    def delete() 
    { 
    println("Enter the rollno of student to be deleted") 
    var no=Console.readInt 

    val mongo = new Mongo() 
    var databaseName = mongo.getDB("mydb") 
    var collectionName = databaseName.getCollection("student") 
    val query=new BasicDBObject(); 
    val query1=new BasicDBObject(); 
    query.put("rollno",new BasicDBObject("$eq",no)); 
    var cursor = new DBCursor(collectionName,query,query1) 

    while(cursor.hasNext) 
    { 
     collectionName.remove(cursor.next()) 
    } 
    } //delete 
} 
+1

1.瞭解如何讀取堆棧跟蹤。 2.不要在代碼中填入大量代碼 - 任何人都不會想要閱讀該代碼。 – 2010-11-10 06:41:35

+0

如果您努力對代碼進行格式化以使其可讀,則您更有可能獲得答案。這次我爲你做了。 – Theo 2010-11-10 06:44:07

+0

如果您閱讀(並按照)常見問題解答,則更有可能在此獲得有用的回覆:http://stackoverflow.com/faq。特別是,請參閱「保持良好態度」,「我在這裏如何提問?」和「如果我沒有得到很好的答案會怎麼樣?」。歡迎來到SO。 – 2010-11-11 20:18:20

回答

2

錯誤說「無法連接到[/127.0.0.1:8005]「,您可以先確定MongoDB正在運行,並且它正在該端口上運行。標準MongoDB端口爲27017.

+0

你知道了 – survi 2010-11-10 07:36:38