Как получить значение ключа (вложенного) в JSON, который хранится в mongoDB с использованием JAVA?

1

Ниже находится файл JSON, из которого я хочу получить номер телефона:

"_data" : {
        "Variable key" : {

        "Name" : "Hello World",
        "Phone" : "Phone : 123-456-6789 ",
        "Region" : "New York",
        "Description" : ""
         }
    }

Мой код Java:

            BasicDBObject query = new BasicDBObject();
            BasicDBObject field = new BasicDBObject();
            field.put("_data.Phone", 1);
            DBCursor cursor = table.find(query,field);
            String str;
            while (cursor.hasNext()) {
                BasicDBObject obj = (BasicDBObject) cursor.next();
                str=cursor.curr().get("_data.Phone").toString();
                System.out.println(str);
                }

который вернет null, поскольку я не рассматриваю ключ переменной.

Моя проблема заключается в том, что в базе данных mongo присутствует много файлов JSON, каждый из которых имеет разные "переменные ключи", и этот ключ может измениться через некоторое время. Как этот ключ может меняться со временем, как я могу получить номер телефона?

Спасибо !!

Теги:

1 ответ

0

Какие номера телефонов вы хотите? Ваш запрос вернет все документы, и вы пытаетесь проецировать только номер телефона, но с неправильной проекцией. Если вы хотите все номера телефонов, просто оставьте спецификацию проекции полностью или { "_data": 1 } проект на { "_data": 1 }. Если вы хотите, чтобы номера телефонов были связаны с определенными переменными ключами, проецируйте их с помощью точечной нотации, например { "_data.key_name.Phone": 1 }. Если вы не знаете имена клавиш, которые хотите проецировать, то это ваша корневая проблема, которую вам нужно решить, прежде чем попросить MongoDB вернуть то, что вы не знаете, что хотите (или что вы не хочу).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню