【问题标题】:Find query result to List查找查询结果到列表
【发布时间】:2015-09-25 13:27:44
【问题描述】:

我有一个包含如下文件的数据库:

{
    "_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,这是我在使用foreach 循环遍历l_d 时得到的。

【问题讨论】:

  • 您是从 DB 中获取纯 json 字符串还是将其包装到 Play JsValue 或其他内容中?
  • 纯json字符串。
  • 例如尝试将其解析为 Play Json。 stackoverflow.com/questions/30884841/…

标签: mongodb list scala casbah


【解决方案1】:

Find 方法返回一个列表,因为返回的对象更多。 l_d 不是列表,因为d['data'] 不是列表是键值存储:Scala 中的字典、json 或映射。问题是你想如何表示这些数据? 也许您想从地图中取出值作为列表。

您可以使用以下方法将映射转换为列表:l_d.toList 或将值映射到列表:l_d.values.toList

【讨论】:

  • 是的,这就是我想做的?你知道怎么做吗?
  • 试试l_d.toListl_d.values.toList
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多