2010-11-30 84 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()); 

...