从MongoDB读取数据

时间:2016-04-08 05:29:42

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

我不再使用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读取数据。请帮我只将文档中的标记字段添加到数组中。
谢谢。

3 个答案:

答案 0 :(得分:2)

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

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

同样使用foreach循环,你可以做...

感谢。

答案 1 :(得分:2)

以下是如何获得&#34; Marks&#34;:

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

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

不重要,但如果您只想加载&#34; Marks&#34;你可以这样发出你的查询:

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

答案 2 :(得分:1)

您可以在DBCursor对象中使用get()方法 将其用作

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

有关详细信息,请参阅MongoDB api DBCursorDBObjectBSONObject