Movatterモバイル変換


[0]ホーム

URL:


 / 
Mango-1.30
River stage two • 9 direct dependents • 10 total dependents
/Mango::BSON

NAME

Mango::BSON - BSON

SYNOPSIS

use Mango::BSON ':bson';my $bson = bson_encode {  foo       => 'bar',  baz       => 0.42,  unordered => {one => [1, 2, 3], two => bson_time},  ordered   => bson_doc(one => qr/test/i, two => bson_true)};my $doc = bson_decode $bson;

DESCRIPTION

Mango::BSON is a minimalistic implementation ofhttp://bsonspec.org.

In addition to a bunch of custom BSON data types it supports normal Perl data types like scalar, regular expression,undef, array reference, hash reference and will try to call theTO_BSON andTO_JSON methods on blessed references, or stringify them if it doesn't exist. Scalar references will be used to generate booleans, based on if their values are true or false.

FUNCTIONS

Mango::BSON implements the following functions, which can be imported individually or at once with the:bson flag.

bson_bin

my $bin = bson_bin $bytes;

Create new BSON element of the binary type withMango::BSON::Binary, defaults to thegeneric binary subtype.

# Functionbson_bin($bytes)->type('function');# MD5bson_bin($bytes)->type('md5');# UUIDbson_bin($bytes)->type('uuid');# User definedbson_bin($bytes)->type('user_defined');

bson_code

my $code = bson_code 'function () {}';

Create new BSON element of the code type withMango::BSON::Code.

# With scopebson_code('function () {}')->scope({foo => 'bar'});

bson_dbref

my $dbref = bson_dbref 'test', $oid;

Create a new database reference.

# Longer versionmy $dbref = {'$ref' => 'test', '$id' => $oid};

bson_decode

my $doc = bson_decode $bson;

Decode BSON into Perl data structures.

bson_doc

my $doc = bson_doc;my $doc = bson_doc foo => 'bar', baz => 0.42, yada => {yada => [1, 2, 3]};

Create new BSON document withMango::BSON::Document, which can also be used as a generic ordered hash.

# Order is preservedmy $hash = bson_doc one => 1, two => 2, three => 3;$hash->{four} = 4;delete $hash->{two};say for keys %$hash;

bson_double

my $doc = { foo => bson_double(13.0) };

Force a scalar value to be encoded as a double in MongoDB. Croaks if the value is incompatible with the double type.

bson_encode

my $bson = bson_encode $doc;my $bson = bson_encode {};

Encode Perl data structures into BSON.

bson_false

my $false = bson_false;

Create new BSON element of the boolean type false.

bson_int32

my $doc = { foo => bson_int32(13) };# This will die (integer is too big)my $doc = { foo => bson_int32(2147483648) };

Force a scalar value to be encoded as a 32 bit integer in MongoDB. Croaks if the value is incompatible with the int32 type.

bson_int64

my $doc = { foo => bson_int64(666) };

Force a scalar value to be encoded as a 64 bit integer in MongoDB. Croaks if the value is incompatible with the int64 type.

bson_length

my $len = bson_length $bson;

Check BSON length prefix.

bson_max

my $max_key = bson_max;

Create new BSON element of the max key type.

bson_min

my $min_key = bson_min;

Create new BSON element of the min key type.

bson_oid

my $oid = bson_oid;my $oid = bson_oid '1a2b3c4e5f60718293a4b5c6';

Create new BSON element of the object id type withMango::BSON::ObjectID, defaults to generating a new unique object id.

# Generate object id with specific epoch timemy $oid = bson_oid->from_epoch(1359840145);

bson_raw

my $raw = bson_raw $bson;

Pre-encoded BSON document.

# Longer versionmy $raw = {'$bson' => $bson};# Embed pre-encoded BSON documentmy $first  = bson_encode {foo => 'bar'};my $second = bson_encode {test => bson_raw $first};

bson_time

my $now  = bson_time;my $time = bson_time time * 1000;

Create new BSON element of the UTC datetime type withMango::BSON::Time, defaults to milliseconds since the UNIX epoch.

# "1360626536.748"bson_time(1360626536748)->to_epoch;# "2013-02-11T23:48:56.748Z"bson_time(1360626536748)->to_datetime;

bson_true

my $true = bson_true;

Create new BSON element of the boolean type true.

bson_ts

my $timestamp = bson_ts 23, 24;

Create new BSON element of the timestamp type withMango::BSON::Timestamp.

encode_cstring

my $bytes = encode_cstring $cstring;

Encode cstring.

SEE ALSO

Mango,Mojolicious::Guides,http://mojolicio.us.

Module Install Instructions

To install Mango, copy and paste the appropriate command in to your terminal.

cpanm

cpanm Mango

CPAN shell

perl -MCPAN -e shellinstall Mango

For more information on module installation, please visitthe detailed CPAN module installation guide.

Keyboard Shortcuts

Global
sFocus search bar
?Bring up this help dialog
GitHub
gpGo to pull requests
gigo to github issues (only if github is preferred repository)
POD
gaGo to author
gcGo to changes
giGo to issues
gdGo to dist
grGo to repository/SCM
gsGo to source
gbGo to file browse
Search terms
module: (e.g.module:Plugin)
distribution: (e.g.distribution:Dancer auth)
author: (e.g.author:SONGMU Redis)
version: (e.g.version:1.00)

[8]ページ先頭

©2009-2025 Movatter.jp