从mongodb BasicDBobject中提取字段值

DCo*_*der 1 java jsp mongodb

我正在开发简单的Web应用程序来学习jsp,mongodb,html.我在jsp中创建了一个简单的注册表单,它从用户那里获取Name,Address和MobileNo信息并将其插入到mongodb中.现在我想检索这个存储的数据并将每个字段的值放在单个字符串变量中.

例如:

姓名:varun;
地址:那格浦尔;
MobileNo:1234567890

以上数据存储在mongodb中:

{ 
"_id" : ObjectId("5259bacea6f8b1c4cd3431d3"), 
"Name" : "varun", 
"Address" : "nagpur", 
"MobileNumber" : "1234567890" 
}
Run Code Online (Sandbox Code Playgroud)

在jsp中检索如下:

MongoClient mongoC = new MongoClient(new ServerAddress("Localhost",27017));
DB database = mongoC.getDB("dbfrnzout");
DBCollection collec1 = database.getCollection("coll"); 
DBObject dock= collec1.findOne();
out.println(dock);
Run Code Online (Sandbox Code Playgroud)

此代码将一条记录打印为json文档,我想存储与每个文档关联的值

单个字符串变量中的字段,如下所示:

String s1 = varun即.字段名称的值

需要一些指导.

Rob*_*ore 6

DBObject实现了Map <String,Object>接口,因此您应该能够执行以下操作:

String name = (String) dock.get( "Name" );
String address = (String) dock.get( "Address" );
String mobileNumber = (String) dock.get( "MobileNumber" );
Run Code Online (Sandbox Code Playgroud)

小心演员并确保你确定每个领域的类型和存在.对于数值,我强烈建议转换为a Number而不是Integer因为MongoDB会将值重新转换为a LongDouble最奇怪的时间.

HTH,Rob.

编辑:如果要迭代查询结果,则必须检查从迭代器返回的每个文档

DBCollection collec1 = database.getCollection("coll"); 
for( DBObject dock : collec1.find() ) {
    String name = (String) dock.get( "Name" );
    String address = (String) dock.get( "Address" );
    String mobileNumber = (String) dock.get( "MobileNumber" );

    // Do Something...
}
Run Code Online (Sandbox Code Playgroud)