Skip to content

BsonNode

A node in the BSON AST.

Each implementation of this interface is a logical BSON node in our own intermediary representation. Each node knows how to writeTo itself into a BSON document.

Security

Implementing this interface allows injecting arbitrary BSON into a request. Be very careful not to make injections possible.

Implementation notes

Prefer implementing AbstractBsonNode instead of implementing this interface directly.

Debugging notes

Use toString to view the JSON representation of this expression.

Inheritors

Types

Companion

object Companion

Properties

context

@LowLevelApi



abstract val context: BsonContext

The context used to generate this expression.

Functions

freeze

@LowLevelApi



abstract override fun freeze()

Makes this expression immutable.

After this method has been called, the expression can never be modified again. This ensures that expressions cannot change after they have been used within other expressions.

simplify

@LowLevelApi



abstract fun simplify(): BsonNode?

Returns a simplified (but equivalent) expression to the current expression.

Returns null when the current expression was simplified into a no-op (= it does nothing).

toBson

@LowLevelApi



open fun toBson(): Bson

Writes the result of simplifying to a new BSON document.

toString

abstract override fun toString(): String

JSON representation of this expression.

writeTo

@LowLevelApi



abstract override fun writeTo(writer: BsonFieldWriter)

Writes the result of simplifying this expression into writer.