【问题标题】:Mongo DB unknown Error?MongoDB未知错误?
【发布时间】:2010-11-30 11:28:46
【问题描述】:

我是 Mongo DB 的新手,我必须在 java 中实现它。我经历了可能的幻灯片,但我对发生的事情感到困惑。我使用 mongo DB 执行了一个小型 java 程序,但它不工作?

我的 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”在做什么?请问有什么建议吗?

【问题讨论】:

    标签: java javascript mongodb mongo-java


    【解决方案1】:

    因为你忘记在 while 循环中调用 cursor.next(),你得到了一个无限循环。

    【讨论】:

    • 我试过了,但它说我需要等待 3 分钟才能接受答案。如此而已。对不起。还有 1 分钟的路程。请。
    • 现在已标记为答案,无需道歉。我今天学到了一些新东西 - 一个有趣的答案需要几分钟才能被接受。
    • 是的。 stackoverflow 岩石。请经常来帮助像我这样的人。向你们学习是我的荣幸。谢谢
    【解决方案2】:

    你必须使用:

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

    而不是

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

    ...

    【讨论】:

    • +1 如果我可以选择标记两者都是正确的,我肯定会这样做,但我的手被束缚了。对此感到抱歉。
    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2015-01-01
    • 2020-01-17
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多