Найти результат запроса в списке

У меня есть база данных, заполненная следующими документами:

{
    "_id" : ObjectId("56zeffb2abcf7ff24b46"),
    "id_thing" : -1,
    "data" : {
        "info1" : 36.0709427,
        "date" : ISODate('2005-11-01T00:33:21.987+07:00'),
        "info2" : 24563.87148077
    }
}

Мой find метод возвращает List, над которым я выполняю некоторые операции:

for (d <- result_of_find_method_here)
{
    val l_d = d("data")
}

Но я хотел бы l_d List, которого в настоящее время нет, а метод toList не работает.

Как мне получить все поля и их значение контейнера data в виде списка?

РЕДАКТИРОВАТЬ:

Я пробовал несколько методов, и ни один из них не работает, потому что ни один из них не применим к AnyRef, что я получаю, когда перебираю l_d с помощью цикла foreach.


person wipman    schedule 25.09.2015    source источник
comment
Вы получаете просто строку json из БД или она завернута в Play JsValue или что-то еще?   -  person Artsiom Miklushou    schedule 25.09.2015
comment
Это обычная строка json.   -  person wipman    schedule 25.09.2015
comment
Попробуйте разобрать его, например, в Play Json. stackoverflow .com / questions / 30884841 /.   -  person Artsiom Miklushou    schedule 26.09.2015


Ответы (1)


Метод Find возвращает список, потому что возвращено больше объектов. l_d не является списком, потому что d['data'] не является списком, это хранилище значений ключа: словарь, json или карта в Scala. Вопрос в том, как вы хотите представить эти данные? Может быть, вы хотите вынести значения с карты в виде списка.

Вы можете преобразовать карту в список, используя: l_d.toList или сопоставить значения в списке: l_d.values.toList

person sergiuz    schedule 27.09.2015
comment
Да, это то, чем я хотел бы заниматься? Ты знаешь как? - person wipman; 28.09.2015
comment
попробуйте l_d.toList и l_d.values.toList - person sergiuz; 28.09.2015