有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从mongodb BasicDBobject中提取字段值

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

例:

Name: varun;
Address: 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) 个答案

  1. # 1 楼答案

    DBObject实现映射<;字符串,对象>;界面,以便您能够执行以下操作:

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

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

    罗布

    编辑:如果对查询结果进行迭代,则必须在从迭代器返回每个文档时对其进行检查

    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...
    }
    
  2. # 2 楼答案

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

    while(cursor.hasNext()) dbo=光标。下一个()