Bson¶
interface Bson
A BSON document.
To create instances of this class, see BsonFactory.
Implementation constraints¶
equals and hashCode should follow the same constraints as BsonDocumentReader's implementations.
Functions¶
at¶
Finds the first value that matches path in a given BSON document.
Example¶
will return the value of the field foo.bar.
Depending on your situation, you can also use the equivalent function selectFirst:
See also
Throws
NoSuchElementException-
If no element is found matching the path.
diff¶
@LowLevelApi
infix fun BsonDocumentReader.diff(other: BsonDocumentReader): String?
Analyzes the difference between two BSON documents.
This function is particularly useful in tests. Since BSON documents can be large, it may be difficult to find what the difference between two documents is.
This function generates human-readable output to find the differences.
Example¶
val a = factory.buildDocument {
writeString("a", "foo")
writeDocument("b") {
writeString("name", "Bob")
writeInt32("age", 18)
}
}
val b = factory.buildDocument {
writeString("a", "foo")
writeDocument("b") {
writeString("name", "Alice")
writeInt32("age", 19)
}
}
println(a.reader() diff b.reader())
Return
If the two documents are equal, returns null. Otherwise, generates a human-readable diff.
@LowLevelApi
infix fun BsonArrayReader.diff(other: BsonArrayReader): String?
Analyzes the difference between two BSON arrays.
This function is particularly useful in tests. Since BSON arrays can be large, it may be difficult to find what the difference between two documents is.
This function generates human-readable output to find the differences.
Example¶
val a = factory.buildArray {
writeString("foo")
writeDocument {
writeString("name", "Bob")
writeInt32("age", 18)
}
}
val b = factory.buildArray {
writeString("foo")
writeDocument {
writeString("name", "Alice")
writeInt32("age", 19)
}
}
println(a.reader() diff b.reader())
Return
If the two arrays are equal, returns null. Otherwise, generates a human-readable diff.
@LowLevelApi
infix fun BsonValueReader.diff(other: BsonValueReader): String?
Analyzes the difference between two BSON values.
This function is particularly useful in tests. Since BSON documents can be large, it may be difficult to find what the difference between two documents is.
This function generates human-readable output to find the differences.
Return
If the two documents are equal, returns null. Otherwise, generates a human-readable diff.
Analyzes the difference between two BSON documents.
This function is particularly useful in tests. Since BSON documents can be large, it may be difficult to find what the difference between two documents is.
This function generates human-readable output to find the differences.
Example¶
val a = factory.buildDocument {
writeString("a", "foo")
writeDocument("b") {
writeString("name", "Bob")
writeInt32("age", 18)
}
}
val b = factory.buildDocument {
writeString("a", "foo")
writeDocument("b") {
writeString("name", "Alice")
writeInt32("age", 19)
}
}
println(a diff b)
Return
If the two documents are equal, returns null. Otherwise, generates a human-readable diff.
Analyzes the difference between two BSON arrays.
This function is particularly useful in tests. Since BSON arrays can be large, it may be difficult to find what the difference between two documents is.
This function generates human-readable output to find the differences.
Example¶
val a = factory.buildArray {
writeString("foo")
writeDocument {
writeString("name", "Bob")
writeInt32("age", 18)
}
}
val b = factory.buildArray {
writeString("foo")
writeDocument {
writeString("name", "Alice")
writeInt32("age", 19)
}
}
println(a diff b)
Return
If the two arrays are equal, returns null. Otherwise, generates a human-readable diff.
read¶
Reads this document into an instance of type T.
If it isn't possible to deserialize this BSON to the given type, an exception is thrown.
See also
- BsonContext.write: The inverse operation.
reader¶
@LowLevelApi
abstract fun reader(): BsonDocumentReader
Reads the fields of this document.
select¶
Finds all values that match path in a given BSON document.
Example¶
will return the value of the field foo.bar.
See also
-
BsonPath: Learn more about BSON paths. -
selectFirst: If you're only interested about a single element. See alsoat.
Finds all values that match path in a given BSON document.
To learn more about the syntax, see BsonPath.
Example¶
will return a sequence of all values matching the path foo.bar.
See also
at: Select a single value.
selectFirst¶
inline fun <T> Bson.selectFirst(path: BsonPath): T
Finds the first value that matches path in a given BSON document.
Example¶
will return the value of the field foo.bar.
Alternatives¶
Depending on your situation, you can also use the equivalent function at:
See also
Throws
NoSuchElementException-
If no element is found matching the path.
inline fun <T> Bson.selectFirst(@Language
(value = "JSONPath") path: String): T
Finds the first value that matches path in a given BSON document.
To learn more about the syntax, see BsonPath.
Example¶
will return the value of the field foo.bar.
See also
toByteArray¶
@LowLevelApi
abstract fun toByteArray(): ByteArray
Low-level byte representation of this BSON document.