从 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);
我是 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);