Kristina Chodorow > MongoDB > MongoDB::Collection

Download:
MongoDB-0.26.tar.gz

Dependencies

Annotate this POD (1)

CPAN RT

Open  0
Report a bug
Module Version: 0.26   Source  

NAME ^

MongoDB::Collection - A Mongo Collection

VERSION ^

version 0.26

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. $query can be a hash reference, Tie::IxHash, or array reference (with an even number of elements). 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. $query can be a hash reference, Tie::IxHash, or array reference (with an even number of elements).

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 (\%criteria, \%object, \%options?)

    $collection->update({'x' => 3}, {'$inc' => {'count' => -1}, {"upsert" => 1, "multiple" => 1});

Updates an existing $object matching $criteria in the database.

update can take a hash reference of options. The options currently supported are:

upsert If no object matching $criteria is found, $object will be inserted.
multiple All of the documents that match $criteria will be updated, not just the first document found.

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?)

    my $n_objects = $collection->count({ name => 'Bob' });

Counts the number of objects in this collection that match the given $query. If no query is given, the total number of objects in the collection is 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>