从 MongoDB 读取数据

Reading data from MongoDB

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

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

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

 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 读取数据的全部知识。请帮助我仅将文档中的标记字段获取到数组中。
谢谢。

你可以使用 DBCursor 对象中的 get() 方法。
用作

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

详见MongoDBapi。
DBCursor , DBObject , BSONObject

你只需要将key传递给get()方法,所以你可以这样做:

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

同样可以使用 foreach 循环...

谢谢。

这里是如何获得 "Marks":

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

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

不重要,但如果您只想加载 "Marks",您可以这样发出查询:

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