com.mongodb
Class DBCollection

java.lang.Object
  extended by com.mongodb.DBCollection

public abstract class DBCollection
extends Object

This class provides a skeleton implementation of a database collection.

A typical invocation sequence is thus

     Mongo mongo = new Mongo( new DBAddress( "localhost", 127017 ) );
     DB db = mongo.getDB( "mydb" );
     DBCollection collection = db.getCollection( "test" );
 


MongoDB Doc Links

Field Summary
protected  String _fullName
           
protected  List<DBObject> _hintFields
           
protected  String _name
           
protected  Class _objectClass
           
 
Constructor Summary
protected DBCollection(DB base, String name)
          Initializes a new collection.
 
Method Summary
protected  DBObject _checkObject(DBObject o, boolean canBeNull, boolean query)
           
 void addOption(int option)
          adds a default query option
 Object apply(DBObject o)
          calls apply(com.mongodb.DBObject, boolean) with ensureID=true
 Object apply(DBObject jo, boolean ensureID)
          calls doapply(com.mongodb.DBObject), optionally adding an automatic _id field
protected  boolean checkReadOnly(boolean strict)
          Returns if this collection's database is read-only
 long count()
          returns the number of documents in this collection.
 long count(DBObject query)
          returns the number of documents that match a query.
 void createIndex(DBObject keys)
          calls createIndex(com.mongodb.DBObject, com.mongodb.DBObject) with default index options
abstract  void createIndex(DBObject keys, DBObject options)
          Forces creation of an index on a set of fields, if one does not already exist.
 List distinct(String key)
          find distinct values for a key
 List distinct(String key, DBObject query)
          find distinct values for a key
protected abstract  void doapply(DBObject o)
          Adds any necessary fields to a given object before saving it to the collection.
 void drop()
          Drops (deletes) this collection.
 void dropIndex(DBObject keys)
          Drops an index from this collection
 void dropIndex(String name)
          Drops an index from this collection
 void dropIndexes()
          Drops all indices from this collection
 void dropIndexes(String name)
          Drops an index from this collection
 void ensureIndex(DBObject keys)
          calls ensureIndex(com.mongodb.DBObject, com.mongodb.DBObject) with default options
 void ensureIndex(DBObject keys, DBObject optionsIN)
          Creates an index on a set of fields, if one does not already exist.
 void ensureIndex(DBObject keys, String name)
          calls ensureIndex(com.mongodb.DBObject, java.lang.String, boolean) with unique=false
 void ensureIndex(DBObject keys, String name, boolean unique)
          Ensures an index on this collection (that is, the index will be created if it does not exist).
 void ensureIndex(String name)
          Creates an ascending index on a field with default options, if one does not already exist.
 boolean equals(Object o)
           
 DBCursor find()
          Queries for all objects in this collection.
 DBCursor find(DBObject ref)
          Queries for an object in this collection.
 DBCursor find(DBObject ref, DBObject keys)
          Queries for an object in this collection.
 DBCursor find(DBObject ref, DBObject fields, int numToSkip, int batchSize)
          Finds objects from the database that match a query.
 DBCursor find(DBObject query, DBObject fields, int numToSkip, int batchSize, int options)
          Calls find(com.mongodb.DBObject, com.mongodb.DBObject, int, int) and applies the query options
 DBObject findAndModify(DBObject query, DBObject update)
          calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, sort=null, remove=false, returnNew=false, upsert=false
 DBObject findAndModify(DBObject query, DBObject sort, DBObject update)
          calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, remove=false, returnNew=false, upsert=false
 DBObject findAndModify(DBObject query, DBObject fields, DBObject sort, boolean remove, DBObject update, boolean returnNew, boolean upsert)
          Finds the first document in the query and updates it.
 DBObject findAndRemove(DBObject query)
          calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, sort=null, remove=true, returnNew=false, upsert=false
 DBObject findOne()
          Returns a single object from this collection.
 DBObject findOne(DBObject o)
          Returns a single object from this collection matching the query.
 DBObject findOne(DBObject o, DBObject fields)
          Returns a single object from this collection matching the query.
 DBObject findOne(Object obj)
          Finds an object by its id.
 DBObject findOne(Object obj, DBObject fields)
          Finds an object by its id.
static String genIndexName(DBObject keys)
          Convenience method to generate an index name from the set of fields it is over.
 DBCollection getCollection(String n)
          Finds a collection that is prefixed with this collection's name.
 long getCount()
          calls getCount(com.mongodb.DBObject, com.mongodb.DBObject) with an empty query and null fields.
 long getCount(DBObject query)
          calls getCount(com.mongodb.DBObject, com.mongodb.DBObject) with null fields.
 long getCount(DBObject query, DBObject fields)
          calls getCount(com.mongodb.DBObject, com.mongodb.DBObject, long, long) with limit=0 and skip=0
 long getCount(DBObject query, DBObject fields, long limit, long skip)
          Returns the number of documents in the collection that match the specified query
 DB getDB()
          Returns the database this collection is a member of.
 String getFullName()
          Returns the full name of this collection, with the database name as a prefix.
 List<DBObject> getIndexInfo()
          Return a list of the indexes for this collection.
protected  Class getInternalClass(String path)
          gets the internal class
 String getName()
          Returns the name of this collection.
 Class getObjectClass()
          Gets the default class for objects in the collection
 int getOptions()
          gets the default query options
 CommandResult getStats()
          gets the collections statistics ("collstats" command)
 WriteConcern getWriteConcern()
          Get the write concern for this collection.
 DBObject group(DBObject args)
          Deprecated. prefer the group(com.mongodb.GroupCommand) which is more standard Applies a group operation
 DBObject group(DBObject key, DBObject cond, DBObject initial, String reduce)
          calls group(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, java.lang.String, java.lang.String) with finalize=null
 DBObject group(DBObject key, DBObject cond, DBObject initial, String reduce, String finalize)
          Applies a group operation
 DBObject group(GroupCommand cmd)
          Applies a group operation
 int hashCode()
           
 WriteResult insert(DBObject... arr)
          Saves document(s) to the database.
abstract  WriteResult insert(DBObject[] arr, WriteConcern concern)
          Saves document(s) to the database.
 WriteResult insert(DBObject o, WriteConcern concern)
          Inserts a document into the database.
 WriteResult insert(List<DBObject> list)
          Saves document(s) to the database.
 WriteResult insert(List<DBObject> list, WriteConcern concern)
          Saves document(s) to the database.
 boolean isCapped()
          returns whether or not this is a capped collection
 MapReduceOutput mapReduce(DBObject command)
          performs a map reduce operation
 MapReduceOutput mapReduce(MapReduceCommand command)
          performs a map reduce operation
 MapReduceOutput mapReduce(String map, String reduce, String outputTarget, DBObject query)
          performs a map reduce operation Runs the command in REPLACE output mode (saves to named collection)
 MapReduceOutput mapReduce(String map, String reduce, String outputTarget, MapReduceCommand.OutputType outputType, DBObject query)
          performs a map reduce operation Specify an outputType to control job execution * INLINE - Return results inline * REPLACE - Replace the output collection with the job output * MERGE - Merge the job output with the existing contents of outputTarget * REDUCE - Reduce the job output with the existing contents of outputTarget
 WriteResult remove(DBObject o)
          calls remove(com.mongodb.DBObject, com.mongodb.WriteConcern) with the default WriteConcern
abstract  WriteResult remove(DBObject o, WriteConcern concern)
          Removes objects from the database collection.
 DBCollection rename(String newName)
          Calls {@link DBCollection#rename(java.lang.String, boolean) with dropTarget=false
 DBCollection rename(String newName, boolean dropTarget)
          renames of this collection to newName
 void resetIndexCache()
          Clears all indices that have not yet been applied to this collection.
 void resetOptions()
          resets the default query options
 WriteResult save(DBObject jo)
          calls save(com.mongodb.DBObject, com.mongodb.WriteConcern) with default WriteConcern
 WriteResult save(DBObject jo, WriteConcern concern)
          Saves an object to this collection (does insert or update based on the object _id).
 void setHintFields(List<DBObject> lst)
          Set hint fields for this collection (to optimize queries).
 void setInternalClass(String path, Class c)
          sets the internal class
 void setObjectClass(Class c)
          Sets a default class for objects in this collection; null resets the class to nothing.
 void setOptions(int options)
          sets the default query options
 void setWriteConcern(WriteConcern concern)
          Set the write concern for this collection.
 void slaveOk()
          makes this query ok to run on a slave node
 String toString()
           
 WriteResult update(DBObject q, DBObject o)
          calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean) with upsert=false and multi=false
 WriteResult update(DBObject q, DBObject o, boolean upsert, boolean multi)
          calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean, com.mongodb.WriteConcern) with default WriteConcern.
abstract  WriteResult update(DBObject q, DBObject o, boolean upsert, boolean multi, WriteConcern concern)
          Performs an update operation.
 WriteResult updateMulti(DBObject q, DBObject o)
          calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean) with upsert=false and multi=true
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_name

protected final String _name

_fullName

protected final String _fullName

_hintFields

protected List<DBObject> _hintFields

_objectClass

protected Class _objectClass
Constructor Detail

DBCollection

protected DBCollection(DB base,
                       String name)
Initializes a new collection. No operation is actually performed on the database.

Parameters:
base - database in which to create the collection
name - the name of the collection
Method Detail

insert

public abstract WriteResult insert(DBObject[] arr,
                                   WriteConcern concern)
                            throws MongoException
Saves document(s) to the database. if doc doesn't have an _id, one will be added you can get the _id that was added from doc after the insert

Parameters:
arr - array of documents to save
concern - the write concern
Returns:
Throws:
MongoException
MongoDB Doc Links

insert

public WriteResult insert(DBObject o,
                          WriteConcern concern)
                   throws MongoException
Inserts a document into the database. if doc doesn't have an _id, one will be added you can get the _id that was added from doc after the insert

Parameters:
o -
concern - the write concern
Returns:
Throws:
MongoException
MongoDB Doc Links

insert

public WriteResult insert(DBObject... arr)
                   throws MongoException
Saves document(s) to the database. if doc doesn't have an _id, one will be added you can get the _id that was added from doc after the insert

Parameters:
arr - array of documents to save
Returns:
Throws:
MongoException
MongoDB Doc Links

insert

public WriteResult insert(List<DBObject> list)
                   throws MongoException
Saves document(s) to the database. if doc doesn't have an _id, one will be added you can get the _id that was added from doc after the insert

Parameters:
list - list of documents to save
Returns:
Throws:
MongoException
MongoDB Doc Links

insert

public WriteResult insert(List<DBObject> list,
                          WriteConcern concern)
                   throws MongoException
Saves document(s) to the database. if doc doesn't have an _id, one will be added you can get the _id that was added from doc after the insert

Parameters:
list - list of documents to save
concern - the write concern
Returns:
Throws:
MongoException
MongoDB Doc Links

update

public abstract WriteResult update(DBObject q,
                                   DBObject o,
                                   boolean upsert,
                                   boolean multi,
                                   WriteConcern concern)
                            throws MongoException
Performs an update operation.

Parameters:
q - search query for old object to update
o - object with which to update q
upsert - if the database should create the element if it does not exist
multi - if the update should be applied to all objects matching (db version 1.1.3 and above). An object will not be inserted if it does not exist in the collection and upsert=true and multi=true. See http://www.mongodb.org/display/DOCS/Atomic+Operations
concern - the write concern
Returns:
Throws:
MongoException
MongoDB Doc Links

update

public WriteResult update(DBObject q,
                          DBObject o,
                          boolean upsert,
                          boolean multi)
                   throws MongoException
calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean, com.mongodb.WriteConcern) with default WriteConcern.

Parameters:
q - search query for old object to update
o - object with which to update q
upsert - if the database should create the element if it does not exist
multi - if the update should be applied to all objects matching (db version 1.1.3 and above) See http://www.mongodb.org/display/DOCS/Atomic+Operations
Returns:
Throws:
MongoException
MongoDB Doc Links

update

public WriteResult update(DBObject q,
                          DBObject o)
                   throws MongoException
calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean) with upsert=false and multi=false

Parameters:
q - search query for old object to update
o - object with which to update q
Returns:
Throws:
MongoException
MongoDB Doc Links

updateMulti

public WriteResult updateMulti(DBObject q,
                               DBObject o)
                        throws MongoException
calls update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean) with upsert=false and multi=true

Parameters:
q - search query for old object to update
o - object with which to update q
Returns:
Throws:
MongoException
MongoDB Doc Links

doapply

protected abstract void doapply(DBObject o)
Adds any necessary fields to a given object before saving it to the collection.

Parameters:
o - object to which to add the fields

remove

public abstract WriteResult remove(DBObject o,
                                   WriteConcern concern)
                            throws MongoException
Removes objects from the database collection.

Parameters:
o - the object that documents to be removed must match
concern - WriteConcern for this operation
Returns:
Throws:
MongoException
MongoDB Doc Links

remove

public WriteResult remove(DBObject o)
                   throws MongoException
calls remove(com.mongodb.DBObject, com.mongodb.WriteConcern) with the default WriteConcern

Parameters:
o - the object that documents to be removed must match
Returns:
Throws:
MongoException
MongoDB Doc Links

find

public final DBCursor find(DBObject query,
                           DBObject fields,
                           int numToSkip,
                           int batchSize,
                           int options)
                    throws MongoException
Calls find(com.mongodb.DBObject, com.mongodb.DBObject, int, int) and applies the query options

Parameters:
query - query used to search
fields - the fields of matching objects to return
numToSkip - number of objects to skip
batchSize - the batch size. This option has a complex behavior, see DBCursor.batchSize(int)
options - - see Bytes QUERYOPTION_*
Returns:
the cursor
Throws:
MongoException
MongoDB Doc Links

find

public final DBCursor find(DBObject ref,
                           DBObject fields,
                           int numToSkip,
                           int batchSize)
Finds objects from the database that match a query. A DBCursor object is returned, that can be iterated to go through the results.

Parameters:
query - query used to search
fields - the fields of matching objects to return
numToSkip - number of objects to skip
batchSize - the batch size. This option has a complex behavior, see DBCursor.batchSize(int)
options - - see Bytes QUERYOPTION_*
Returns:
the cursor
Throws:
MongoException
MongoDB Doc Links

findOne

public final DBObject findOne(Object obj)
                       throws MongoException
Finds an object by its id. This compares the passed in value to the _id field of the document

Parameters:
obj - any valid object
Returns:
the object, if found, otherwise null
Throws:
MongoException

findOne

public final DBObject findOne(Object obj,
                              DBObject fields)
Finds an object by its id. This compares the passed in value to the _id field of the document

Parameters:
obj - any valid object
fields - fields to return
Returns:
the object, if found, otherwise null
MongoDB Doc Links

findAndModify

public DBObject findAndModify(DBObject query,
                              DBObject fields,
                              DBObject sort,
                              boolean remove,
                              DBObject update,
                              boolean returnNew,
                              boolean upsert)
Finds the first document in the query and updates it.

Parameters:
query - query to match
fields - fields to be returned
sort - sort to apply before picking first document
remove - if true, document found will be removed
update - update to apply
returnNew - if true, the updated document is returned, otherwise the old document is returned (or it would be lost forever)
upsert - do upsert (insert if document not present)
Returns:
the document

findAndModify

public DBObject findAndModify(DBObject query,
                              DBObject sort,
                              DBObject update)
calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, remove=false, returnNew=false, upsert=false

Parameters:
query -
sort -
update -
Returns:
the old document

findAndModify

public DBObject findAndModify(DBObject query,
                              DBObject update)
calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, sort=null, remove=false, returnNew=false, upsert=false

Parameters:
query -
update -
Returns:
the old document

findAndRemove

public DBObject findAndRemove(DBObject query)
calls findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean) with fields=null, sort=null, remove=true, returnNew=false, upsert=false

Parameters:
query -
Returns:
the removed document

createIndex

public final void createIndex(DBObject keys)
                       throws MongoException
calls createIndex(com.mongodb.DBObject, com.mongodb.DBObject) with default index options

Parameters:
keys - an object with a key set of the fields desired for the index
Throws:
MongoException

createIndex

public abstract void createIndex(DBObject keys,
                                 DBObject options)
                          throws MongoException
Forces creation of an index on a set of fields, if one does not already exist.

Parameters:
keys -
options -
Throws:
MongoException

ensureIndex

public final void ensureIndex(String name)
Creates an ascending index on a field with default options, if one does not already exist.

Parameters:
name - name of field to index on

ensureIndex

public final void ensureIndex(DBObject keys)
                       throws MongoException
calls ensureIndex(com.mongodb.DBObject, com.mongodb.DBObject) with default options

Parameters:
keys - an object with a key set of the fields desired for the index
Throws:
MongoException

ensureIndex

public void ensureIndex(DBObject keys,
                        String name)
                 throws MongoException
calls ensureIndex(com.mongodb.DBObject, java.lang.String, boolean) with unique=false

Parameters:
keys - fields to use for index
name - an identifier for the index
Throws:
MongoException
MongoDB Doc Links

ensureIndex

public void ensureIndex(DBObject keys,
                        String name,
                        boolean unique)
                 throws MongoException
Ensures an index on this collection (that is, the index will be created if it does not exist).

Parameters:
keys - fields to use for index
name - an identifier for the index. If null or empty, the default name will be used.
unique - if the index should be unique
Throws:
MongoException

ensureIndex

public final void ensureIndex(DBObject keys,
                              DBObject optionsIN)
                       throws MongoException
Creates an index on a set of fields, if one does not already exist.

Parameters:
keys - an object with a key set of the fields desired for the index
optionsIN - options for the index (name, unique, etc)
Throws:
MongoException

resetIndexCache

public void resetIndexCache()
Clears all indices that have not yet been applied to this collection.


genIndexName

public static String genIndexName(DBObject keys)
Convenience method to generate an index name from the set of fields it is over.

Parameters:
keys - the names of the fields used in this index
Returns:
a string representation of this index's fields

setHintFields

public void setHintFields(List<DBObject> lst)
Set hint fields for this collection (to optimize queries).

Parameters:
lst - a list of DBObjects to be used as hints

find

public final DBCursor find(DBObject ref)
Queries for an object in this collection.

Parameters:
ref - object for which to search
Returns:
an iterator over the results
MongoDB Doc Links

find

public final DBCursor find(DBObject ref,
                           DBObject keys)
Queries for an object in this collection.

An empty DBObject will match every document in the collection. Regardless of fields specified, the _id fields are always returned.

An example that returns the "x" and "_id" fields for every document in the collection that has an "x" field:

 BasicDBObject keys = new BasicDBObject();
 keys.put("x", 1);

 DBCursor cursor = collection.find(new BasicDBObject(), keys); 
 

Parameters:
ref - object for which to search
keys - fields to return
Returns:
a cursor to iterate over results
MongoDB Doc Links

find

public final DBCursor find()
Queries for all objects in this collection.

Returns:
a cursor which will iterate over every object
MongoDB Doc Links

findOne

public final DBObject findOne()
                       throws MongoException
Returns a single object from this collection.

Returns:
the object found, or null if the collection is empty
Throws:
MongoException

findOne

public final DBObject findOne(DBObject o)
                       throws MongoException
Returns a single object from this collection matching the query.

Parameters:
o - the query object
Returns:
the object found, or null if no such object exists
Throws:
MongoException

findOne

public final DBObject findOne(DBObject o,
                              DBObject fields)
Returns a single object from this collection matching the query.

Parameters:
o - the query object
fields - fields to return
Returns:
the object found, or null if no such object exists
MongoDB Doc Links

apply

public final Object apply(DBObject o)
calls apply(com.mongodb.DBObject, boolean) with ensureID=true

Parameters:
o - DBObject to which to add fields
Returns:
the modified parameter object

apply

public final Object apply(DBObject jo,
                          boolean ensureID)
calls doapply(com.mongodb.DBObject), optionally adding an automatic _id field

Parameters:
jo - object to add fields to
ensureID - whether to add an _id field
Returns:
the modified object o

save

public final WriteResult save(DBObject jo)
calls save(com.mongodb.DBObject, com.mongodb.WriteConcern) with default WriteConcern

Parameters:
jo - the DBObject to save will add _id field to jo if needed
Returns:

save

public final WriteResult save(DBObject jo,
                              WriteConcern concern)
                       throws MongoException
Saves an object to this collection (does insert or update based on the object _id).

Parameters:
jo - the DBObject to save
concern - the write concern
Returns:
Throws:
MongoException

dropIndexes

public void dropIndexes()
                 throws MongoException
Drops all indices from this collection

Throws:
MongoException

dropIndexes

public void dropIndexes(String name)
                 throws MongoException
Drops an index from this collection

Parameters:
name - the index name
Throws:
MongoException

drop

public void drop()
          throws MongoException
Drops (deletes) this collection. Use with care.

Throws:
MongoException

count

public long count()
           throws MongoException
returns the number of documents in this collection.

Returns:
Throws:
MongoException

count

public long count(DBObject query)
           throws MongoException
returns the number of documents that match a query.

Parameters:
query - query to match
Returns:
Throws:
MongoException

getCount

public long getCount()
              throws MongoException
calls getCount(com.mongodb.DBObject, com.mongodb.DBObject) with an empty query and null fields.

Returns:
number of documents that match query
Throws:
MongoException

getCount

public long getCount(DBObject query)
              throws MongoException
calls getCount(com.mongodb.DBObject, com.mongodb.DBObject) with null fields.

Parameters:
query - query to match
Returns:
Throws:
MongoException

getCount

public long getCount(DBObject query,
                     DBObject fields)
              throws MongoException
calls getCount(com.mongodb.DBObject, com.mongodb.DBObject, long, long) with limit=0 and skip=0

Parameters:
query - query to match
fields - fields to return
Returns:
Throws:
MongoException

getCount

public long getCount(DBObject query,
                     DBObject fields,
                     long limit,
                     long skip)
              throws MongoException
Returns the number of documents in the collection that match the specified query

Parameters:
query - query to select documents to count
fields - fields to return
limit - limit the count to this value
skip - number of entries to skip
Returns:
number of documents that match query and fields
Throws:
MongoException

rename

public DBCollection rename(String newName)
                    throws MongoException
Calls {@link DBCollection#rename(java.lang.String, boolean) with dropTarget=false

Parameters:
newName - new collection name (not a full namespace)
Returns:
the new collection
Throws:
MongoException

rename

public DBCollection rename(String newName,
                           boolean dropTarget)
                    throws MongoException
renames of this collection to newName

Parameters:
newName - new collection name (not a full namespace)
dropTarget - if a collection with the new name exists, whether or not to drop it
Returns:
the new collection
Throws:
MongoException

group

public DBObject group(DBObject key,
                      DBObject cond,
                      DBObject initial,
                      String reduce)
               throws MongoException
calls group(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, java.lang.String, java.lang.String) with finalize=null

Parameters:
key - - { a : true }
cond - - optional condition on query
reduce - javascript reduce function
initial - initial value for first match on a key
Returns:
Throws:
MongoException
See Also:
http://www.mongodb.org/display/DOCS/Aggregation

group

public DBObject group(DBObject key,
                      DBObject cond,
                      DBObject initial,
                      String reduce,
                      String finalize)
               throws MongoException
Applies a group operation

Parameters:
key - - { a : true }
cond - - optional condition on query
reduce - javascript reduce function
initial - initial value for first match on a key
finalize - An optional function that can operate on the result(s) of the reduce function.
Returns:
Throws:
MongoException
See Also:
http://www.mongodb.org/display/DOCS/Aggregation

group

public DBObject group(GroupCommand cmd)
Applies a group operation

Parameters:
cmd - the group command
Returns:
Throws:
MongoException
See Also:
http://www.mongodb.org/display/DOCS/Aggregation

group

@Deprecated
public DBObject group(DBObject args)
               throws MongoException
Deprecated. prefer the group(com.mongodb.GroupCommand) which is more standard Applies a group operation

Parameters:
args - object representing the arguments to the group function
Returns:
Throws:
MongoException
See Also:
http://www.mongodb.org/display/DOCS/Aggregation

distinct

public List distinct(String key)
find distinct values for a key

Parameters:
key -
Returns:

distinct

public List distinct(String key,
                     DBObject query)
find distinct values for a key

Parameters:
key -
query - query to match
Returns:

mapReduce

public MapReduceOutput mapReduce(String map,
                                 String reduce,
                                 String outputTarget,
                                 DBObject query)
                          throws MongoException
performs a map reduce operation Runs the command in REPLACE output mode (saves to named collection)

Parameters:
map - map function in javascript code
outputTarget - optional - leave null if want to use temp collection
reduce - reduce function in javascript code
query - to match
Returns:
Throws:
MongoException
MongoDB Doc Links

mapReduce

public MapReduceOutput mapReduce(String map,
                                 String reduce,
                                 String outputTarget,
                                 MapReduceCommand.OutputType outputType,
                                 DBObject query)
                          throws MongoException
performs a map reduce operation Specify an outputType to control job execution * INLINE - Return results inline * REPLACE - Replace the output collection with the job output * MERGE - Merge the job output with the existing contents of outputTarget * REDUCE - Reduce the job output with the existing contents of outputTarget

Parameters:
map - map function in javascript code
outputTarget - optional - leave null if want to use temp collection
outputType - set the type of job output
reduce - reduce function in javascript code
query - to match
Returns:
Throws:
MongoException
MongoDB Doc Links

mapReduce

public MapReduceOutput mapReduce(MapReduceCommand command)
                          throws MongoException
performs a map reduce operation

Parameters:
command - object representing the parameters
Returns:
Throws:
MongoException

mapReduce

public MapReduceOutput mapReduce(DBObject command)
                          throws MongoException
performs a map reduce operation

Parameters:
command - object representing the parameters
Returns:
Throws:
MongoException

getIndexInfo

public List<DBObject> getIndexInfo()
Return a list of the indexes for this collection. Each object in the list is the "info document" from MongoDB

Returns:
list of index documents

dropIndex

public void dropIndex(DBObject keys)
               throws MongoException
Drops an index from this collection

Parameters:
keys - keys of the index
Throws:
MongoException

dropIndex

public void dropIndex(String name)
               throws MongoException
Drops an index from this collection

Parameters:
name - name of index to drop
Throws:
MongoException

getStats

public CommandResult getStats()
gets the collections statistics ("collstats" command)

Returns:

isCapped

public boolean isCapped()
returns whether or not this is a capped collection

Returns:

_checkObject

protected DBObject _checkObject(DBObject o,
                                boolean canBeNull,
                                boolean query)

getCollection

public DBCollection getCollection(String n)
Finds a collection that is prefixed with this collection's name. A typical use of this might be
    DBCollection users = mongo.getCollection( "wiki" ).getCollection( "users" );
 
Which is equilalent to
DBCollection users = mongo.getCollection( "wiki.users" );

Parameters:
n - the name of the collection to find
Returns:
the matching collection

getName

public String getName()
Returns the name of this collection.

Returns:
the name of this collection

getFullName

public String getFullName()
Returns the full name of this collection, with the database name as a prefix.

Returns:
the name of this collection

getDB

public DB getDB()
Returns the database this collection is a member of.

Returns:
this collection's database

checkReadOnly

protected boolean checkReadOnly(boolean strict)
Returns if this collection's database is read-only

Parameters:
strict - if an exception should be thrown if the database is read-only
Returns:
if this collection's database is read-only
Throws:
RuntimeException - if the database is read-only and strict is set

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object o)
Overrides:
equals in class Object

toString

public String toString()
Overrides:
toString in class Object

setObjectClass

public void setObjectClass(Class c)
Sets a default class for objects in this collection; null resets the class to nothing.

Parameters:
c - the class
Throws:
IllegalArgumentException - if c is not a DBObject

getObjectClass

public Class getObjectClass()
Gets the default class for objects in the collection

Returns:
the class

setInternalClass

public void setInternalClass(String path,
                             Class c)
sets the internal class

Parameters:
path -
c -

getInternalClass

protected Class getInternalClass(String path)
gets the internal class

Parameters:
path -
Returns:

setWriteConcern

public void setWriteConcern(WriteConcern concern)
Set the write concern for this collection. Will be used for writes to this collection. Overrides any setting of write concern at the DB level. See the documentation for WriteConcern for more information.

Parameters:
concern - write concern to use

getWriteConcern

public WriteConcern getWriteConcern()
Get the write concern for this collection.

Returns:

slaveOk

public void slaveOk()
makes this query ok to run on a slave node


addOption

public void addOption(int option)
adds a default query option

Parameters:
option -

setOptions

public void setOptions(int options)
sets the default query options

Parameters:
options -

resetOptions

public void resetOptions()
resets the default query options


getOptions

public int getOptions()
gets the default query options

Returns: