0

我对 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 读取数据的所有信息。请帮助我仅将文档中的标记字段获取到数组中。
谢谢你。

4

3 回答 3

2

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

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

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

谢谢。

于 2016-04-08T05:39:20.347 回答
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);
于 2016-04-08T05:43:19.750 回答
1

那么您可以使用get()DBCursor 对象中的方法。
用它作为

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

有关详细信息,请参阅 MongoDB api。
DBCursor , DBObject , BSONObject

于 2016-04-08T05:37:57.313 回答