NAME

MongoDB::OID - A Mongo Object ID

SYNOPSIS

If no _id field is provided when a document is inserted into the database, an _id field will be added with a new MongoDB::OID as its value.

my $id = $collection->insert({'name' => 'Alice', age => 20});

$id will be a MongoDB::OID that can be used to retreive or update the saved document:

$collection->update({_id => $id}, {'age' => {'$inc' => 1}});
# now Alice is 21

To create a copy of an existing OID, you must set the value attribute in the constructor. For example:

my $id1 = MongoDB::OID->new;
my $id2 = MongoDB::OID->new(value => $id1->value);

Now $id1 and $id2 will have the same value.

Warning: at the moment, OID generation is not thread safe.

SEE ALSO

Core documentation on object ids: http://dochub.mongodb.org/core/objectids.

ATTRIBUTES

value

The OID value. A random value will be generated if none exists already. It is a 24-character hexidecimal string (12 bytes).

Its string representation is the 24-character string.

METHODS

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.

AUTHOR

Kristina Chodorow <kristina@mongodb.org>