BsonFactory

class BsonFactory(serializersModule: SerializersModule = EmptySerializersModule()) : BsonFactory(source)

Entrypoint for creating BsonDocument and BsonArray instances.

Navigating BSON types

This interface is part of the BSON trinity:

Serialization

This interface encapsulates methods to serialize and serialize BSON documents with KotlinX.Serialization.

Usage

To create the following BSON document:

{
"name": "Bob",
"isAlive": true,
"children": [
{
"name": "Alice"
},
{
"name": "Charles"
}
]
}

use the code:

val document = factory.buildDocument {
writeString("name", "Alice")
writeBoolean("isAlive", true)
writeArray("children") {
writeDocument {
writeString("name", "Alice")
}
writeDocument {
writeString("name", "Charles")
}
}
}

The value can then be read into Kotlin types:

@Serializable
data class User(
val name: String,
val isAlive: Boolean,
val children: List<Child>,
)

@Serializable
data class Child(
val name: String,
)

val user = document.decode<User>()

println(user.children[0].name) // Alice

Constructors

Link copied to clipboard
constructor(serializersModule: SerializersModule = EmptySerializersModule())

Properties

Link copied to clipboard

The SerializersModule used by this factory when encoding or decoding BSON types.

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Writes an arbitrary Kotlin obj into a top-level BSON document.

Link copied to clipboard
open override fun readArray(bytes: ByteArray): BsonArray
open override fun readArray(array: BsonArray): BsonArray
Link copied to clipboard
open override fun readDocument(bytes: ByteArray): BsonDocument
open override fun readDocument(document: BsonDocument): BsonDocument
Link copied to clipboard
open override fun readValue(value: BsonValue): BsonValue