【问题标题】:Reading data from MongoDB [duplicate]从 MongoDB 读取数据 [重复]
【发布时间】:2016-04-08 05:29:41
【问题描述】:

我是 MongoDB 的新手。 我有一个里面有很少文件的集合。下面是一个例子。

 {"UserID": "1", "Name": "John", "Marks":40} 
 {"UserID": "2", "Name": "Mark", "Marks":50} 
 {"UserID": "3", "Name": "Jesse", "Marks":60} 

我想将所有条目的标记放到一个数组中以显示它们并使用java进行一些计算。 到目前为止,我已经完成了阅读文档并显示所有数据的工作。但是我找不到一种方法来仅从中获得“标记”。

 MongoClient client = new MongoClient("localhost",27017); 
 DB db = client.getDB( "test_db" );
 DBCollection collection = db.getCollection("AllocatedMarks");

 DBCursor cursor = collection.find();
 while(cursor.hasNext()) {
    System.out.println(cursor.next());
 }

到目前为止,我所知道的关于使用 Java 从 MongoDB 读取数据的所有信息。请帮助我仅将文档中的标记字段获取到数组中。
谢谢。

【问题讨论】:

    标签: java mongodb mongodb-java mongo-java-driver


    【解决方案1】:

    您只需将密钥传递给 get() 方法,因此您可以这样做:

    for(int i=0; i<cursor.size();i++){
       System.out.println(cursor.get(i).get("Marks"));
    }
    

    类似地使用 foreach 循环你可以做到...

    谢谢。

    【讨论】:

    • 谢谢。这样就可以了。
    【解决方案2】:

    这是获得“标记”的方法:

    DBObject dbObject;
    while(cursor.hasNext()) {
       dbObject = cursor.next();
       int marks = ((Number)dbObject.get("Marks")).intValue()
    }
    

    您可以直接转换为整数而不是数字。

    不重要,但如果您只想加载“标记”,您可以这样发出查询:

    BasicDBObject fieldsDBObject = new BasicDBObject();
    fieldsDBObject.append("Marks",true);
    DBCursor cursor = collection.find(null, fieldsDBObject);
    

    【讨论】:

      【解决方案3】:

      你可以在 DBCursor 对象中使用get() 方法。
      把它当作

      System.out.println(cursor.next().get("Marks");
      

      详情请参考 MongoDB api。
      DBCursor , DBObject , BSONObject

      【讨论】:

        猜你喜欢
        • 2011-10-30
        • 1970-01-01
        • 2018-06-15
        • 2017-10-06
        • 1970-01-01
        • 2015-08-04
        • 1970-01-01
        • 2021-12-30
        • 2012-02-23
        相关资源
        最近更新 更多