bson_bytes
$bytes = bson_bytes( $byte_string );
$bytes = bson_bytes( $byte_string, $subtype );
This function returns a BSON::Bytes object wrapping the provided string. A numeric subtype may be
provided as a second argument, but this is not recommended for new applications.
bson_code
$code = bson_code( $javascript );
$code = bson_code( $javascript, $hashref );
This function returns a BSON::Code object wrapping the provided Javascript code. An optional hashref
representing variables in scope for the function may be given as well.
bson_dbref
$dbref = bson_dbref( $object_id, $collection_name );
This function returns a BSON::DBRef object wrapping the provided Object ID and collection name.
bson_decimal128
$decimal = bson_decimal128( "0.12" );
$decimal = bson_decimal128( "1.23456789101112131415116E-412" );
This function returns a BSON::Decimal128 object wrapping the provided decimal string. Unlike floating
point values, this preserves exact decimal precision.
bson_doc
$doc = bson_doc( first => "hello, second => "world" );
This function returns a BSON::Doc object, which preserves the order of the provided key-value pairs.
bson_array
$doc = bson_array(...);
This function returns a BSON::Array object, which preserves the order of the provided list of elements.
bson_double
$double = bson_double( 1.0 );
This function returns a BSON::Double object wrapping a native double value. This ensures it serializes
to BSON as a double rather than a string or integer given Perl's lax typing for scalars.
bson_int32
$int32 = bson_int32( 42 );
This function returns a BSON::Int32 object wrapping a native integer value. This ensures it serializes
to BSON as an Int32 rather than a string or double given Perl's lax typing for scalars.
bson_int64
$int64 = bson_int64( 0 ); # 64-bit zero
This function returns a BSON::Int64 object, wrapping a native integer value. This ensures it serializes
to BSON as an Int64 rather than a string or double given Perl's lax typing for scalars.
bson_maxkey
$maxkey = bson_maxkey();
This function returns a singleton representing the "maximum key" BSON type.
bson_minkey
$minkey = bson_minkey();
This function returns a singleton representing the "minimum key" BSON type.
bson_oid
$oid = bson_oid(); # generate a new one
$oid = bson_oid( $bytes ); # from 12-byte packed OID
$oid = bson_oid( $hex ); # from 24 hex characters
This function returns a BSON::OID object wrapping a 12-byte MongoDB Object ID. With no arguments, a new,
unique Object ID is generated instead. If 24 hexadecimal characters are given, they will be packed into
a 12-byte Object ID.
bson_raw
$raw = bson_raw( $bson_encoded );
This function returns a BSON::Raw object wrapping an already BSON-encoded document.
bson_regex
$regex = bson_regex( $pattern );
$regex = bson_regex( $pattern, $flags );
This function returns a BSON::Regex object wrapping a PCRE pattern and optional flags.
bson_string
$string = bson_string( "08544" );
This function returns a BSON::String object, wrapping a native string value. This ensures it serializes
to BSON as a UTF-8 string rather than an integer or double given Perl's lax typing for scalars.
bson_time
$time = bson_time( $seconds_from_epoch );
This function returns a BSON::Time object representing a UTC date and time to millisecond precision. The
argument must be given as a number of seconds relative to the Unix epoch (positive or negative). The
number may be a floating point value for fractional seconds. If no argument is provided, the current
time from Time::HiRes is used.
bson_timestamp
$timestamp = bson_timestamp( $seconds_from_epoch, $increment );
This function returns a BSON::Timestamp object. It is not recommended for general use.
bson_bool(DISCOURAGED)
# for consistency with other helpers
$bool = bson_bool( $expression );
# preferred for efficiency
use boolean;
$bool = boolean( $expression );
This function returns a boolean object (true or false) based on the provided expression (or false if no
expression is provided). It is provided for consistency so that all BSON types have a corresponding
helper function.
For efficiency, use boolean::boolean() directly, instead.