NAME
MongoDB::Collection - A Mongo Collection
VERSION
version 0.24
ATTRIBUTES
name
The name of the collection.
full_name
The full_name of the collection, including the namespace of the database it's in.
METHODS
query ($query, \%attrs?)
my $cursor = $collection->query({ i => { '$gt' => 42 } });
my $cursor = $collection->query({ }, { limit => 10, skip => 10 });
my $cursor = $collection->query(
{ location => "Vancouver" },
{ sort_by => { age => 1 } },
);
Executes the given $query and returns a MongoDB::Cursor with the results. A hash reference of attributes may be passed as the second argument.
Valid query attributes are:
- limit
-
Limit the number of results.
- skip
-
Skip a number of results.
- sort_by
-
Order results.
find_one (\%query)
my $object = $collection->find_one({ name => 'Resi' });
Executes the given $query and returns the first object matching it.
insert ($object)
my $id = $collection->insert({ name => 'mongo', type => 'database' });
Inserts the given $object into the database and returns it's id value. $object can be a hash reference, a reference to an array with an even number of elements, or a Tie::IxHash. The id is the _id value specified in the data or a MongoDB::OID.
batch_insert (@array)
my @ids = $collection->batch_insert(({name => "Joe"}, {name => "Fred"}, {name => "Sam"}));
Inserts each of the documents in the array into the database and returns an array of their _id fields.
update (\%update, \%object, $upsert?)
$collection->update($object);
Updates an existing $object matching $criteria in the database. If $upsert is true, if no object matching $criteria is found, $object will be inserted.
remove (\%query?, $just_one?)
$collection->remove({ answer => { '$ne' => 42 } });
Removes all objects matching the given $query from the database. If no parameters are given, removes all objects from the collection (but does not delete indexes, as MongoDB::Collection::drop does). Boolean parameter $just_one causes only one matching document to be removed.
ensure_index ($keys, $direction?, $unique?)
$collection->ensure_index([qw/foo bar/]);
Makes sure the given @keys of this collection are indexed. keys can be an array reference, hash reference, or Tie::IxHash. The optional index direction defaults to ascending.
count ($query, $fields)
my $n_objects = $collection->count({ name => 'Bob' });
$bobs_with_zip = $collection->count({ name => 'Bob' }, { zip : 1 });
Counts the number of objects in this collection that match the given $query and contain the given $fields. Both parameters are optional, if neither are given, the total number of objects in the collection are returned.
validate
$collection->validate;
Asks the server to validate this collection. Returns a hash of the form:
{
'ok' => '1',
'ns' => 'foo.bar',
'result' => info
}
where info is a string of information about the collection.
drop_indexes
$collection->drop_indexes;
Removes all indexes from this collection.
drop_index ($index_name)
$collection->drop_index('foo_1');
Removes an index called $index_name from this collection. Use MongoDB::Collection::get_indexes to find the index name.
get_indexes
my @indexes = $collection->get_indexes;
Returns a list of all indexes of this collection. Each index contains ns, name, and key fields of the form:
{
'ns' => 'db_name.collection_name',
'name' => 'index_name',
'key' => {
'key1' => dir1,
'key2' => dir2,
...
'keyN' => dirN
}
}
where dirX is 1 or -1, depending on if the index is ascending or descending on that key.
drop
$collection->drop;
Deletes a collection as well as all of its indexes.
AUTHOR
Kristina Chodorow <kristina@mongodb.org>