AnyMongo
view release on metacpan or search on metacpan
benchmarks/bench.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use AnyMongo;
use MongoDB;
use DateTime;
use feature 'say';
use Benchmark qw(:all);
my $tries = 50000;
my $small_doc = {};
my $medium_doc = {
'integer' => 5,
'number' => 5.05,
'boolean' => 0,
'array' => ['test', 'benchmark']
};
my $large_doc = {
'base_url' => 'http://www.example.com/test-me',
'total_word_count' => 6743,
'access_time' => DateTime->now,
'meta_tags' => {
'description' => 'i am a long description string',
'author' => 'Holly Man',
'dynamically_created_meta_tag' => 'who know\n what'
},
'page_structure' => {
'counted_tags' => 3450,
'no_of_js_attached' => 10,
'no_of_images' => 6
},
lib/AnyMongo/BSON/OID.pm view on Meta::CPAN
=head1 METHODS
=head2 to_string
my $hex = $oid->to_string;
Gets the value of this OID as a 24-digit hexidecimal string.
=head2 get_time
my $date = DateTime->from_epoch(epoch => $id->get_time);
Each OID contains a 4 bytes timestamp from when it was created. This method
extracts the timestamp.
=head2 TO_JSON
my $json = JSON->new;
$json->allow_blessed;
$json->convert_blessed;
mongo_support.c view on Meta::CPAN
buf->pos += INT_64;
break;
}
case BSON_DATE: {
int64_t ms_i = MONGO_64(*(int64_t*)buf->pos);
SV *datetime, *ms, **heval;
HV *named_params;
buf->pos += INT_64;
ms_i /= 1000;
datetime = sv_2mortal(newSVpv("DateTime", 0));
ms = newSViv(ms_i);
named_params = newHV();
heval = hv_store(named_params, "epoch", strlen("epoch"), ms, 0);
value = perl_mongo_call_function("DateTime::from_epoch", 2, datetime,
sv_2mortal(newRV_inc(sv_2mortal((SV*)named_params))));
break;
}
case BSON_REGEX: {
SV *pattern, *regex, *regex_ref;
HV *stash;
U32 flags = 0;
REGEXP *re;
#if PERL_REVISION==5 && PERL_VERSION<=8
PMOP pm;
mongo_support.c view on Meta::CPAN
}
perl_mongo_serialize_long(buf, big*sign);
}
/* Tie::IxHash */
else if (sv_isa(sv, "Tie::IxHash")) {
set_type(buf, BSON_OBJECT);
perl_mongo_serialize_key(buf, key, is_insert);
ixhash_to_bson(buf, sv, NO_PREP, stack, is_insert);
}
/* DateTime */
else if (sv_isa(sv, "DateTime")) {
SV *sec, *ms;
set_type(buf, BSON_DATE);
perl_mongo_serialize_key(buf, key, is_insert);
sec = perl_mongo_call_reader (sv, "epoch");
ms = perl_mongo_call_method (sv, "millisecond", 0);
perl_mongo_serialize_long(buf, (int64_t)SvIV(sec)*1000+SvIV(ms));
SvREFCNT_dec (sec);
SvREFCNT_dec (ms);
t/perl-driver-api/bson.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Exception;
use AnyMongo::Compat;
use boolean;
use DateTime;
use Data::Types qw(:float);
use Tie::IxHash;
my $conn;
eval {
my $host = "localhost";
if (exists $ENV{MONGOD}) {
$host = $ENV{MONGOD};
}
$conn = MongoDB::Connection->new(host => $host);
t/perl-driver-api/bson.t view on Meta::CPAN
{
$c->drop;
my $id = $c->insert({"n" => undef,
"l" => 234234124,
"d" => 23.23451452,
"b" => true,
"a" => {"foo" => "bar",
"n" => undef,
"x" => MongoDB::OID->new("49b6d9fb17330414a0c63102")},
"d2" => DateTime->from_epoch(epoch => 1271079861),
"regex" => qr/xtz/,
"_id" => MongoDB::OID->new("49b6d9fb17330414a0c63101"),
"string" => "string"});
my $obj = $c->find_one;
is($obj->{'n'}, undef);
is($obj->{'l'}, 234234124);
is($obj->{'d'}, 23.23451452);
is($obj->{'b'}, true);
is($obj->{'a'}->{'foo'}, 'bar');
is($obj->{'a'}->{'n'}, undef);
isa_ok($obj->{'a'}->{'x'}, 'MongoDB::OID');
isa_ok($obj->{'d2'}, 'DateTime');
is($obj->{'d2'}->epoch, 1271079861);
ok($obj->{'regex'});
isa_ok($obj->{'_id'}, 'MongoDB::OID');
is($obj->{'_id'}, $id);
is($obj->{'string'}, 'string');
}
{
$MongoDB::BSON::char = "=";
$c->drop;
t/perl-driver-api/types.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Exception;
use AnyMongo::Compat;
use DateTime;
use JSON;
use Data::Dumper;
my $conn;
eval {
my $host = "localhost";
if (exists $ENV{MONGOD}) {
$host = $ENV{MONGOD};
}
$conn = MongoDB::Connection->new(host => $host);
t/perl-driver-api/types.t view on Meta::CPAN
{
my $ids = [];
for (0..9) {
push @$ids, MongoDB::OID->new;
sleep 1;
}
for (0..8) {
ok((@$ids[$_]."") lt (@$ids[$_+1].""));
}
my $now = DateTime->now;
$id = MongoDB::OID->new;
is($now->epoch, $id->get_time);
}
# creating ids from an existing value
{
my $value = "012345678901234567890123";
my $id = MongoDB::OID->new(value => $value);
is($id->value, $value);
t/perl-driver-api/types.t view on Meta::CPAN
skip "regex flags don't work yet with perl 5.8", 1 if $] =~ /5\.008/;
ok("FOO" =~ $obj->{'r'}, 'this won\'t pass with Perl 5.8');
}
ok(!("bar" =~ $obj->{'r'}), 'not a match');
# date
$coll->drop;
my $now = DateTime->now;
$coll->insert({'date' => $now});
my $date = $coll->find_one;
is($date->{'date'}->epoch, $now->epoch);
is($date->{'date'}->day_of_week, $now->day_of_week);
my $past = DateTime->from_epoch('epoch' => 1234567890);
$coll->insert({'date' => $past});
$date = $coll->find_one({'date' => $past});
is($date->{'date'}->epoch, 1234567890);
# minkey/maxkey
$coll->drop;
( run in 0.362 second using v1.01-cache-2.11-cpan-05444aca049 )