sql >> Database >  >> NoSQL >> MongoDB

Serialiseren naar object met behulp van scala mongo-stuurprogramma?

Ze maken het niet makkelijk. Tijdens het graven door de java kwam ik op deze oplossing:

import org.bson.codecs.DecoderContext
import org.bson.codecs.configuration.CodecRegistries.{fromProviders, fromRegistries}
import org.bson.codecs.configuration.CodecRegistry
import org.bson.{BsonDocumentReader, BsonDocumentWrapper}
import org.mongodb.scala.bson.codecs.{DEFAULT_CODEC_REGISTRY, Macros}
import org.mongodb.scala.bson.collection.mutable.Document

import scala.reflect.classTag

case class Person(firstName: String, lastName: String)

object MongoTest extends App {

  val personCodecProvider = Macros.createCodecProvider[Person]()
  val codecRegistry: CodecRegistry = fromRegistries(fromProviders(personCodecProvider), DEFAULT_CODEC_REGISTRY)

  val document = Document("firstName" -> "first", "lastName" -> "last")
  val bsonDocument = BsonDocumentWrapper.asBsonDocument(document, DEFAULT_CODEC_REGISTRY)

  val bsonReader = new BsonDocumentReader(bsonDocument)
  val decoderContext = DecoderContext.builder.build
  val codec = codecRegistry.get(classTag[Person].runtimeClass)
  val person: Person = codec.decode(bsonReader, decoderContext).asInstanceOf[Person]

  println(s"person: $person")
}


  1. Hoe documenten filteren op basis van een embedded array?

  2. Heeft MongoDB een manier om een ​​document bij te werken zonder bestaande elementen te verwijderen die niet in de updategegevens staan?

  3. Mongoose zelfverwezen schema maakt geen ObjectId voor alle subdocumenten

  4. Mongodb php krijgt id van nieuw document?