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");

Любая помощь будет оценена. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос