NAME

MongoDB::BSON - Encoding and decoding utilities (more to come)

ATTRIBUTES

looks_like_number

$MongoDB::BSON::looks_like_number = 1;
$collection->insert({age => "4"}); # stores 4 as an int

If this is set, the driver will be more aggressive about converting strings into numbers. Anything that Scalar::Util's looks_like_number would approve as a number will be sent to MongoDB as its numeric value.

Defaults to 0 (for backwards compatibility).

If you do not set this, you may be using strings more often than you intend to. See the MongoDB::DataTypes section for more info on the behavior of strings vs. numbers.

char

$MongoDB::BSON::char = ":";
$collection->query({"x" => {":gt" => 4}});

Can be used to set a character other than "$" to use for special operators.

Turn on/off UTF8 flag when return strings

# turn off utf8 flag on strings
$MongoDB::BSON::utf8_flag_on = 0;

Default is turn on, that compatible with version before 0.34.

If set to 0, will turn of utf8 flag on string attribute and return on bytes mode, meant same as :

utf8::encode($str)

Currently MongoDB return string with utf8 flag, on character mode , some people wish to turn off utf8 flag and return string on byte mode, it maybe help to display "pretty" strings.

NOTE:

If you turn off utf8 flag, the string length will compute as bytes, and is_utf8 will return false.

Return boolean values as booleans instead of integers

$MongoDB::BSON::use_boolean = 1

By default, booleans are deserialized as integers. If you would like them to be deserialized as "true" in boolean and "false" in boolean, set $MongoDB::BSON::use_boolean to 1.

Return binary data as instances of MongoDB::BSON::Binary instead of string refs.

$MongoDB::BSON::use_binary = 1

For backwards compatibility, binary data is deserialized as a string ref. If you would like to have it deserialized as instances of MongoDB::BSON::Binary (to, say, preserve the subtype), set $MongoDB::BSON::use_binary to 1.