使用java从mongodb读取数据

使用java从mongodb读取数据,java,mongodb,Java,Mongodb,如何使用mongo db和java读取上面的每个值,您应该能够将DBObject强制转换为它的一个实现(请参见此处的所有实现:),在本例中,BasicDBList扩展了ArrayList,因此您可以使用ArrayList中的所有方法 db.dimensions.insert({ "GeoLevels": [{ "5": "Continent_Name" }, { "4": "Country_Name" }, { "3": "

如何使用mongo db和java读取上面的每个值,您应该能够将DBObject强制转换为它的一个实现(请参见此处的所有实现:),在本例中,BasicDBList扩展了ArrayList,因此您可以使用ArrayList中的所有方法

db.dimensions.insert({
    "GeoLevels": [{
        "5": "Continent_Name"
    }, {
        "4": "Country_Name"
    }, {
        "3": "Region_Name"
    }, {
        "2": "State_Name"
    }, {
        "1": "City_Name"
    }],
    "AssetLevels": [{
        "2": "Asset_Model"
    }, {
        "1": "Asset_Class"
    }],
    "TimeLevels": [{
        "4": "Year"
    }, {
        "3": "Qtr"
    }, {
        "2": "Month"
    }, {
        "1": "Week"
    }]
})
mongomongo=newmongo(“localhost”,27017);
DB=mongo.getDB(“测试”);//使用数据库
DBObject allQuery=new BasicDBObject();
DBCollection=db.getCollection(“维度”);
DBCursor curs=collection.find();
迭代器字段=curs.Iterator();
while(fields.hasNext()){//
BasicDBList geoList=(BasicDBList)fields.next().get(“GeoLevels”);
BasicDBObject=(BasicDBObject)geoList.get(0);//这应该返回{“5”:“大陆名称”}
Object value=Object.get(“5);//值应包含“大陆名称”
} 
我还建议您查看Spring data mongodb,它允许您将对象从mongodb直接映射到POJO,这样就更容易使用:


您看过mongodb java驱动程序或spring data mongodb文档了吗?我想您会在这些文档的开头找到答案。您插入了一个文档。有两种方法可以读取此文档。您可以一次读取整个文档,将其保存在内存中并从中读取,或者根据需要读取各个键。哪种方法您选择的选项取决于文档更改的频率。第一个选项可能更容易。我想访问地理级别、时间级别的每一个元素,我尝试了,但没有成功。您能帮我吗approach@amrutha-你应该能够编辑你的帖子并在那里添加代码。评论中的代码太多了,很难理解ead.好的,谢谢。假设我发送“5”如何获取大陆名称在这种情况下被接受,你能在下面的场景中帮助我吗如果我发送“5”如何获取大陆名称如果我给出“5”我如何找到值在最后一行
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("test");// Use DB 
DBObject allQuery = new BasicDBObject(); 
DBCollection collection = db.getCollection("dimensions"); 
DBCursor curs = collection.find(); 
Iterator<DBObject> fields = curs.iterator(); 
while(fields.hasNext()){ //
   BasicDBList geoList = (BasicDBList) fields.next().get("GeoLevels");
   BasicDBObject object = (BasicDBObject) geoList.get(0); // this should return {"5": "Continent_Name"}
   Object value = object.get("5); // value should contain "Continent_Name"
}