1

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

前任:

姓名:瓦伦;
地址:那格浦尔;
手机号: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 = varunIE。字段名称的值

需要一些指导。

4

2 回答 2

6

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

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

小心转换并确保您确定每个字段的类型和存在。对于数值,我强烈建议转换为 aNumber而不是,Integer因为 MongoDB 会在最奇怪的时候将值重新转换为 aLongDouble

HTH,罗布。

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

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...
}
于 2013-10-18T02:20:06.453 回答
0

做这样的事情来从光标中获取一个对象

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

于 2014-08-17T16:22:42.567 回答