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