2012-10-22 39 views
2

我查詢蒙戈DB在Scala中,並通過返回的元素循環檢索嵌套元素,看起來像這樣:從MongoCursor

{ "_id" : "123:1350918540586068000:v" , 
    "i" : { 
     "vendorStyle" : "coolStyle" , 
     "createdAt" : 1350918540580 , 
     "productId" : "product123" , 
     "skuId" : "123" 
    } 
} 

我的問題是:我怎麼檢索skuId價值?我知道你可以使用符號parent.child在蒙戈的「發現」的方法,但所產生的DBOBJECT

這讀取時不工作是代碼:

val elems = SkuStorage.collection.find(MongoDBObject("i.productId" -> productId)) 
elems.toSeq.map { element=> 
    readSkuById(element.get("i.skuId")) //breaks! 
} 

我需要去(「我」)然後解析字符串到JSON?有沒有更好的方法來處理這個問題?

+0

你試過調用get( 「I」)。獲得( 「skuId」)? – Louisa

+0

是的,get(「i」)給出一個String,所以你不能對它做.get(「...」)。 – Miguel

回答

0

你可以嘗試

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

返回Option[String]

+0

嗯...它看起來像我不能做.expand: 值擴展不是com.mongodb.casbah.package.DBObject的成員 – Miguel

+0

import com.mongodb.casbah.Implicits._ – viktortnk

+0

這工作,謝謝! – Miguel

相關問題