Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 从MongoCursor检索嵌套元素_Json_Scala_Mongodb - Fatal编程技术网

Json 从MongoCursor检索嵌套元素

Json 从MongoCursor检索嵌套元素,json,scala,mongodb,Json,Scala,Mongodb,我在Scala中查询Mongo DB并循环返回元素,如下所示: { "_id" : "123:1350918540586068000:v" , "i" : { "vendorStyle" : "coolStyle" , "createdAt" : 1350918540580 , "productId" : "product123" , "skuId" : "123" } } 我的问题是:如何从skuId检

我在Scala中查询Mongo DB并循环返回元素,如下所示:

{ "_id" : "123:1350918540586068000:v" , 
    "i" : { 
        "vendorStyle" : "coolStyle" , 
        "createdAt" : 1350918540580 , 
        "productId" : "product123" , 
        "skuId" : "123"
    }
}
我的问题是:如何从skuId检索值?我知道您可以在Mongo中的“find”方法中使用表示法parent.child,但在读取结果DBObject时,这不起作用

代码如下:

val elems = SkuStorage.collection.find(MongoDBObject("i.productId" -> productId))
elems.toSeq.map { element=>
    readSkuById(element.get("i.skuId")) //breaks! 
}
我是否需要获取(“I”)然后将字符串解析为JSON?有没有更好的方法处理这个问题?

你可以试试

element.expand[String]("i.skuId")

它返回
选项[String]

您是否尝试调用get(“i”).get(“skuId”)?是的,get(“i”)给出了一个字符串,因此您无法在其上执行。get(“…”)。Hmmm。。。看起来我无法进行扩展。扩展:值扩展不是com.mongodb.casbah.package.DBObjectimport com.mongodb.casbah.Implicits的成员_