2010-11-30 17 views
1

Ich bin neu in Mongo DB Ich muss es in Java implementieren. Ich habe vielleicht Dias durchgesehen, aber ich bin verwirrt, was passiert. Ich habe ein kleines Java-Programm mit Mongo-DB ausgeführt, aber es funktioniert nicht?Mongo DB unbekannt Fehler?

Mein Java-Code:

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

Die Ausgabe lautet: es als

wahr wahr wahr wahr wahr wahr wahr wahr kontinuierlich gedruckt wird immer wahr wahr wahr wahr wahr wahr wahr wahr wahr wahr wahr wahr wahr wahr

ich kann nicht herausfinden, was geschieht. Ich möchte einige Daten in die Sammlung "Artikel" auch wenn ich wissen will, wie man Mongo in Java verwenden. Ich kenne Mysql gut, aber zu Mongo verschieben kann ich nicht beide in Abfragen beziehen. Was macht "query.put"? Irgendwelche Vorschläge bitte?

Antwort

2

Sie haben eine Endlosschleife, weil Sie vergessen haben, cursor.next() innerhalb der while-Schleife aufzurufen.

+0

bedauern, dass Sie Recht haben. Danke für deine schnelle Antwort. –

+0

@ Leo-vin, könnte bitte die Antwort als akzeptierte Antwort markieren? Danke :) – rawpower

+0

Ich versuchte, aber es sagt, dass ich 3 Minuten warten muss, um eine Antwort zu akzeptieren. nur so. Es tut uns leid. Noch 1 Minute. Bitte. –

1

Sie haben zu verwenden:

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

statt

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

...

+0

Danke, dass Sie Recht haben. es funktioniert gut. –

+0

+1 und wenn ich eine Option habe, beide zu markieren, werde ich das tun, aber meine Hände sind gebunden. das tut mir leid. –