MongoDB извлекает значения из BasicDBObject (Java)
У меня проблемы с получением значений из запрашиваемых документов в MongoDB.
Например, структура документа выглядит так:
{
"_id": {
"$oid": "50f93b74f9eccc540b302462"
},
"response": {
"result": {
"code": "1000",
"msg": "Command completed successfully"
},
"resData": {
"domain:infData": {
"domain:name": "ritesh.com",
"domain:crDate": "2007-06-15T12:02:36.0000Z",
"domain:exDate": "2013-06-15T12:02:36.0000Z"
}
}
}
}
И код запроса:
DBCollection collection = db.getCollection("domains");
BasicDBObject p = new BasicDBObject("response.resData.domain:infData.domain:name", "ritesh.com");
DBCursor c = collection.find(p);
while(c.hasNext()) {
DBObject obj = c.next();
Object value = obj.get("response.resData.domain:infData.domain:name");
}
Он запрашивает нормально и выбирает документ, но я могуКажется, я не могу понять, как извлечь значениеresponse.resData.domain: infData.domain: имя» или другие аналогично вложенные значения из DBObject (или BasicDBObject, поскольку c.next () возвращает тип BasicDBObject).
Я мог бы получать объекты по одному, например:
((DBObject)obj.get("response")).get("resData")....
но это кажется очень громоздким.
Я думал, так как вы можете поместить () значение вложенного поля в BasicDBObject, как:
basicDBObject.put("response.resData.domain:infData.domain:name", "ritesh.com");
что я мог бы аналогичным образом использовать get () для извлечения из результата BasicDBObject, используя тот же тип ключа. Как я пытался сделать в приведенном выше коде с:
Object value = obj.get("response.resData.domain:infData.domain:name");
Но это возвращает нулевое значение.
Это'Возможно, это что-то простое, но я могуКажется, это понять. И везде япроверил в сети примеры только выборки значений, которые невложенный, из результата. подобно
doc.get("name");
вместо чего-то вроде:
doc.get("name.lastname.clanname");
Любая помощь будет оценена. Спасибо!