sql >> Database >  >> NoSQL >> MongoDB

Geen Json-deserializer gevonden voor type Option[reactivemongo.bson.BSONObjectID]

Vreemd! Mijn Intellij IDEA 12 herkende de import niet en toen ik de import optimaliseerde

import play.modules.reactivemongo.json.BSONFormats._

is verwijderd waardoor de fout is ontstaan.

Je zou ook een aangepast Format-object kunnen maken om de BSONObjectID naar json te vertalen.

implicit object BSONObjectIDFormat extends Format[BSONObjectID] {
    def writes(objectId: BSONObjectID): JsValue = JsString(objectId.toString())
    def reads(json: JsValue): JsResult[BSONObjectID] = json match {
      case JsString(x) => {
        val maybeOID: Try[BSONObjectID] = BSONObjectID.parse(x)
        if(maybeOID.isSuccess) JsSuccess(maybeOID.get) else {
          JsError("Expected BSONObjectID as JsString")
        }
      }
      case _ => JsError("Expected BSONObjectID as JsString")
    }
  }

Maar in dit geval is de import voldoende.



  1. mongodump Mislukt:slechte optie:kan slechts één verzameling naar stdout dumpen

  2. Foutmelding:MongoError:slechte auth Verificatie mislukt via URI-tekenreeks

  3. Tekstindex maken op subdocumentveldjokerteken

  4. MongoDB $cosh