0

特定の JSON について、別の JSON に挿入するための ID として使用する _id を取得するにはどうすればよいですか?

以下に示すように ID を取得しようとしましたが、正しい結果が返されません。

private def getModelRunId(): List[String] = {
  val resultsCursor: List[DBObject] =
    modelRunResultsCollection.find(MongoDBObject.empty, MongoDBObject(FIELD_ID -> 1)).toList
  println("resultsCursor >>>>>>>>>>>>>>>>>> " +  resultsCursor)
  resultsCursor.map(x => (Json.parse(x.toString()) \ FIELD_ID).asOpt[String]).flatten
}
{
"_id": ObjectId("5269723bd516ec3a69f3639e"),
"modelRunId": ObjectId("5269723ad516ec3a69f3639d"),
"results": [
{
  "ClaimId": "526971f5b5b8b9148404623a",
  "pricingResult": {
    "TxId": 0,
    "ClaimId": "Large_Batch_1",
    "Errors": [

    ],
    "Disposition": [
      {
        "GroupId": 1,
        "PriceAmt": 20,
        "Status": "Priced Successfully",
        "ReasonCode": 0,
        "Reason": "RmbModel(PAM_DC_1):ProgramNode(Validation CPG):ServiceGroupNode(Medical Services):RmbTerm(RT)",
        "PricingMethodologyId": 2,
        "Lines": [
          {
            "Id": 1
          }
        ]
      }
    ]
  }
},
4

2 に答える 2

3

objectId を検索する場合:

import com.mongodb.casbah.Imports._ 
collection.find(MongoDBObject(/*query*/)).map(_._id)

IDでクエリしたい場合:

collection.findOneByID(/*id*/)
于 2013-10-31T16:41:34.543 に答える
2

Scalaの公式ドライバーであるCasbahを使用していると思います。

map 関数を変更するだけです:

resultsCursor.map { x => x.as[org.bson.types.ObjectId](FIELD_ID)}

Casbah は BSON から Scala オブジェクトへの逆シリアル化を行うため、自分で行う必要はありません。

于 2013-10-31T13:38:45.757 に答える