2010-11-30 85 views
1

我是新來的Mongo DB我必須在java中實現它。我經歷了可能的幻燈片,但我很困惑發生了什麼。我用mongo DB執行了一個小型的java程序,但它不工作?Mongo DB未知錯誤?

我的Java代碼:

public class MongoDbTesting { 

    public void connectingMongo() throws UnknownHostException, MongoException{ 
    Mongo m = new Mongo("localhost" , 27017); //mongo object 
    DB db = m.getDB("todo"); 
    System.out.println("Connected"); 
    //making a collection object which is table when compared to sql 
    DBCollection items = db.getCollection("items"); 
    System.out.println("items got"); 

    //to work with document we need basicDbObject  
    BasicDBObject query = new BasicDBObject(); 
    System.out.println("Created mongoObject"); 
    //insert in mongo 
    query.put("priority", "highest"); 
    items.insert(query); 
    System.out.println("Inserted");  
     //Cursor, which is like rs in sql 
    DBCursor cursor = items.find(); 
    System.out.println("items got"); 
    //print highest priority items 

    while(cursor.hasNext()){ 
     System.out.println(cursor.hasNext()); 
    } 
    } 
    } 

的輸出是: 它是越來越連續印刷作爲

真 真 真 真 真 真 真 真 真 真實 真正 真正 真正 真正 真正 真正 真正 真正 真正 真正 真正 真正

我無法弄清楚發生了什麼。我想插入一些數據到集合「項目」 也如果我想知道如何在Java中使用Mongo。我很熟悉mysql,但轉移到mongo,我不能在查詢中涉及這兩個問題。什麼是「query.put」在做什麼?有什麼建議嗎?

回答

2

你得到了一個無限循環,因爲你忘記了在while循環中調用cursor.next()。

+0

對不起,你是對的。感謝您的快速回復。 – 2010-11-30 11:39:23

+0

@Leo-vin,請將回答標記爲已接受的答案?謝謝:) – rawpower 2010-11-30 11:42:36

1

你必須使用:

System.out.println(cursor.next()); 

而不是

System.out.println(cursor.hasNext()); 

...