BsonDocument¶
@Serializable(with = BsonDocument.Serializer::class)
@Serializable(with = BsonDocument.Serializer::class)
expect class BsonDocument : BsonDocument
Implementation of opensavvy.ktmongo.bson.BsonDocument based on the official MongoDB drivers.
To create instances of this class, see [`BsonFactory`](../../../bson/opensavvy.ktmongo.bson/-bson-factory/index.md).
<blockquote markdown>
This page describes the BSON implementation based on the official MongoDB drivers. To learn more about the general BSON operations, see [`opensavvy.ktmongo.bson.BsonDocument`](../../../bson/opensavvy.ktmongo.bson/-bson-document/index.md).
</blockquote>
### Navigating BSON types
This interface is part of the BSON trinity:
- [`BsonDocument`](index.md) represents an entire BSON document.
- [`BsonArray`](../-bson-array/index.md) represents an array of BSON values.
- [`BsonValue`](../-bson-value/index.md) represents a single value in isolation.
### Usage
```kotlin
val bson: BsonDocument = …
for ((name, field) in bson) {
println("Field: $name • ${field.type}")
}
```
@Serializable(with = BsonDocument.Serializer::class)
@Serializable(with = BsonDocument.Serializer::class)
actual class BsonDocument : BsonDocument
opensavvy.ktmongo.bson.BsonDocument that wraps a org.bson.BsonDocument.
To create an instance of this class, see BsonFactory.readDocument.
Types¶
Field¶
expect class Field(name: String, value: BsonValue) : BsonDocument.Field
actual class Field(val name: String, val value: BsonValue) : BsonDocument.Field
Serializer¶
expect object Serializer : KSerializer<BsonDocument>
actual object Serializer : KSerializer<BsonDocument>
Serializer for the official opensavvy.ktmongo.bson.official.BsonDocument implementation.
Properties¶
factory¶
expect open override val factory: BsonFactory
actual open override val factory: BsonFactory
fields¶
raw¶
val raw: BsonDocument
size¶
Functions¶
asIterable¶
expect open override fun asIterable(): Iterable<BsonDocument.Field>
actual open override fun asIterable(): Iterable<BsonDocument.Field>
asMap¶
asSequence¶
expect open override fun asSequence(): Sequence<BsonDocument.Field>
actual open override fun asSequence(): Sequence<BsonDocument.Field>
asValue¶
decode¶
@LowLevelApi
abstract fun <T> decode(type: KType): T
@LowLevelApi
open override fun <T> decode(type: KType): T
equals¶
get¶
hashCode¶
isEmpty¶
isNotEmpty¶
open fun isNotEmpty(): Boolean
open fun isNotEmpty(): Boolean
iterator¶
expect open operator override fun iterator(): Iterator<BsonDocument.Field>
actual open operator override fun iterator(): Iterator<BsonDocument.Field>
toByteArray¶
abstract fun toByteArray(): ByteArray
@LowLevelApi
open override fun toByteArray(): ByteArray