从mongodb BasicDBobject中提取字段值

时间:2013-10-17 19:34:21

标签: java mongodb jsp

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

例如:

  

姓名:varun;
地址:Nagpur;
MobileNo:1234567890

以上数据存储在mongodb中:

{ 
"_id" : ObjectId("5259bacea6f8b1c4cd3431d3"), 
"Name" : "varun", 
"Address" : "nagpur", 
"MobileNumber" : "1234567890" 
}

在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);

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

相关联的值 单个字符串变量中的

字段,如下所示:

String s1 = varun即。字段名称

需要一些指导。

2 个答案:

答案 0 :(得分:6)

DBObject实现Map< String,Object>界面,所以你应该能够做类似的事情:

String name = (String) dock.get( "Name" );
String address = (String) dock.get( "Address" );
String mobileNumber = (String) dock.get( "MobileNumber" );

小心演员并确保你确定每个领域的类型和存在。对于数值,我强烈建议转换为Number而不是Integer,因为MongoDB会在最奇怪的时间将值重新投射到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...
}

答案 1 :(得分:0)

执行类似的操作以从光标中获取对象

while(cursor.hasNext())     dbObject o = cursor.next()