public abstract class DBCollection
extends java.lang.Object
A typical invocation sequence is thus
Mongo mongo = new Mongo( new DBAddress( "localhost", 127017 ) ); DB db = mongo.getDB( "mydb" ); DBCollection collection = db.getCollection( "test" );
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
_fullName |
protected java.util.List<DBObject> |
_hintFields |
protected java.lang.String |
_name |
protected java.lang.Class |
_objectClass |
Modifier | Constructor and Description |
---|---|
protected |
DBCollection(DB base,
java.lang.String name)
Initializes a new collection.
|
Modifier and Type | Method and Description |
---|---|
protected DBObject |
_checkObject(DBObject o,
boolean canBeNull,
boolean query) |
void |
addOption(int option)
adds a default query option
|
java.lang.Object |
apply(DBObject o)
calls
apply(com.mongodb.DBObject, boolean) with ensureID=true |
java.lang.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.
|
java.util.List |
distinct(java.lang.String key)
find distinct values for a key
|
java.util.List |
distinct(java.lang.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(java.lang.String name)
Drops an index from this collection
|
void |
dropIndexes()
Drops all indices from this collection
|
void |
dropIndexes(java.lang.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,
java.lang.String name)
calls
ensureIndex(com.mongodb.DBObject, java.lang.String, boolean) with unique=false |
void |
ensureIndex(DBObject keys,
java.lang.String name,
boolean unique)
Ensures an index on this collection (that is, the index will be created if it does not exist).
|
void |
ensureIndex(java.lang.String name)
Creates an ascending index on a field with default options, if one does not already exist.
|
boolean |
equals(java.lang.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 query,
DBObject fields,
int numToSkip,
int batchSize)
Deprecated.
|
DBCursor |
find(DBObject query,
DBObject fields,
int numToSkip,
int batchSize,
int options)
Deprecated.
|
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(java.lang.Object obj)
Finds an object by its id.
|
DBObject |
findOne(java.lang.Object obj,
DBObject fields)
Finds an object by its id.
|
static java.lang.String |
genIndexName(DBObject keys)
Convenience method to generate an index name from the set of fields it is over.
|
DBCollection |
getCollection(java.lang.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.
|
DBDecoderFactory |
getDBDecoderFactory() |
java.lang.String |
getFullName()
Returns the full name of this collection, with the database name as a prefix.
|
java.util.List<DBObject> |
getIndexInfo()
Return a list of the indexes for this collection.
|
protected java.lang.Class |
getInternalClass(java.lang.String path)
gets the internal class
|
java.lang.String |
getName()
Returns the name of this collection.
|
java.lang.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,
java.lang.String reduce)
|
DBObject |
group(DBObject key,
DBObject cond,
DBObject initial,
java.lang.String reduce,
java.lang.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(java.util.List<DBObject> list)
Saves document(s) to the database.
|
WriteResult |
insert(java.util.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(java.lang.String map,
java.lang.String reduce,
java.lang.String outputTarget,
DBObject query)
performs a map reduce operation
Runs the command in REPLACE output mode (saves to named collection)
|
MapReduceOutput |
mapReduce(java.lang.String map,
java.lang.String reduce,
java.lang.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(java.lang.String newName)
Calls {@link DBCollection#rename(java.lang.String, boolean) with dropTarget=false
|
DBCollection |
rename(java.lang.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 |
setDBDecoderFactory(DBDecoderFactory dbDecoderFactory) |
void |
setHintFields(java.util.List<DBObject> lst)
Set hint fields for this collection (to optimize queries).
|
void |
setInternalClass(java.lang.String path,
java.lang.Class c)
sets the internal class
|
void |
setObjectClass(java.lang.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
|
java.lang.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 |
protected final java.lang.String _name
protected final java.lang.String _fullName
protected java.util.List<DBObject> _hintFields
protected java.lang.Class _objectClass
protected DBCollection(DB base, java.lang.String name)
base
- database in which to create the collectionname
- the name of the collectionpublic abstract WriteResult insert(DBObject[] arr, WriteConcern concern) throws MongoException
arr
- array of documents to saveconcern
- the write concernMongoException
public WriteResult insert(DBObject o, WriteConcern concern) throws MongoException
o
- concern
- the write concernMongoException
public WriteResult insert(DBObject... arr) throws MongoException
arr
- array of documents to saveMongoException
public WriteResult insert(java.util.List<DBObject> list) throws MongoException
list
- list of documents to saveMongoException
public WriteResult insert(java.util.List<DBObject> list, WriteConcern concern) throws MongoException
list
- list of documents to saveconcern
- the write concernMongoException
public abstract WriteResult update(DBObject q, DBObject o, boolean upsert, boolean multi, WriteConcern concern) throws MongoException
q
- search query for old object to updateo
- object with which to update qupsert
- if the database should create the element if it does not existmulti
- 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+Operationsconcern
- the write concernMongoException
public WriteResult update(DBObject q, DBObject o, boolean upsert, boolean multi) throws MongoException
update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean, com.mongodb.WriteConcern)
with default WriteConcern.q
- search query for old object to updateo
- object with which to update qupsert
- if the database should create the element if it does not existmulti
- 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+OperationsMongoException
public WriteResult update(DBObject q, DBObject o) throws MongoException
update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean)
with upsert=false and multi=falseq
- search query for old object to updateo
- object with which to update qMongoException
public WriteResult updateMulti(DBObject q, DBObject o) throws MongoException
update(com.mongodb.DBObject, com.mongodb.DBObject, boolean, boolean)
with upsert=false and multi=trueq
- search query for old object to updateo
- object with which to update qMongoException
protected abstract void doapply(DBObject o)
o
- object to which to add the fieldspublic abstract WriteResult remove(DBObject o, WriteConcern concern) throws MongoException
o
- the object that documents to be removed must matchconcern
- WriteConcern for this operationMongoException
public WriteResult remove(DBObject o) throws MongoException
remove(com.mongodb.DBObject, com.mongodb.WriteConcern)
with the default WriteConcerno
- the object that documents to be removed must matchMongoException
@Deprecated public final DBCursor find(DBObject query, DBObject fields, int numToSkip, int batchSize, int options) throws MongoException
find(com.mongodb.DBObject, com.mongodb.DBObject, int, int)
and applies the query optionsquery
- query used to searchfields
- the fields of matching objects to returnnumToSkip
- number of objects to skipbatchSize
- the batch size. This option has a complex behavior, see DBCursor.batchSize(int)
options
- - see Bytes QUERYOPTION_*MongoException
@Deprecated public final DBCursor find(DBObject query, DBObject fields, int numToSkip, int batchSize)
query
- query used to searchfields
- the fields of matching objects to returnnumToSkip
- number of objects to skipbatchSize
- the batch size. This option has a complex behavior, see DBCursor.batchSize(int)
options
- - see Bytes QUERYOPTION_*MongoException
public final DBObject findOne(java.lang.Object obj) throws MongoException
obj
- any valid objectnull
MongoException
public final DBObject findOne(java.lang.Object obj, DBObject fields)
obj
- any valid objectfields
- fields to returnnull
public DBObject findAndModify(DBObject query, DBObject fields, DBObject sort, boolean remove, DBObject update, boolean returnNew, boolean upsert)
query
- query to matchfields
- fields to be returnedsort
- sort to apply before picking first documentremove
- if true, document found will be removedupdate
- update to applyreturnNew
- 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)public DBObject findAndModify(DBObject query, DBObject sort, DBObject update)
findAndModify(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, boolean, com.mongodb.DBObject, boolean, boolean)
with fields=null, remove=false, returnNew=false, upsert=falsequery
- sort
- update
- public DBObject findAndModify(DBObject query, DBObject update)
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=falsequery
- update
- public DBObject findAndRemove(DBObject query)
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=falsequery
- public final void createIndex(DBObject keys) throws MongoException
createIndex(com.mongodb.DBObject, com.mongodb.DBObject)
with default index optionskeys
- an object with a key set of the fields desired for the indexMongoException
public abstract void createIndex(DBObject keys, DBObject options) throws MongoException
keys
- options
- MongoException
public final void ensureIndex(java.lang.String name)
name
- name of field to index onpublic final void ensureIndex(DBObject keys) throws MongoException
ensureIndex(com.mongodb.DBObject, com.mongodb.DBObject)
with default optionskeys
- an object with a key set of the fields desired for the indexMongoException
public void ensureIndex(DBObject keys, java.lang.String name) throws MongoException
ensureIndex(com.mongodb.DBObject, java.lang.String, boolean)
with unique=falsekeys
- fields to use for indexname
- an identifier for the indexMongoException
public void ensureIndex(DBObject keys, java.lang.String name, boolean unique) throws MongoException
keys
- fields to use for indexname
- an identifier for the index. If null or empty, the default name will be used.unique
- if the index should be uniqueMongoException
public final void ensureIndex(DBObject keys, DBObject optionsIN) throws MongoException
keys
- an object with a key set of the fields desired for the indexoptionsIN
- options for the index (name, unique, etc)MongoException
public void resetIndexCache()
public static java.lang.String genIndexName(DBObject keys)
keys
- the names of the fields used in this indexpublic void setHintFields(java.util.List<DBObject> lst)
lst
- a list of DBObject
s to be used as hintspublic final DBCursor find(DBObject ref)
ref
- object for which to searchpublic final DBCursor find(DBObject ref, DBObject keys)
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);
ref
- object for which to searchkeys
- fields to returnpublic final DBCursor find()
public final DBObject findOne() throws MongoException
null
if the collection is emptyMongoException
public final DBObject findOne(DBObject o) throws MongoException
o
- the query objectnull
if no such object existsMongoException
public final DBObject findOne(DBObject o, DBObject fields)
o
- the query objectfields
- fields to returnnull
if no such object existspublic final java.lang.Object apply(DBObject o)
apply(com.mongodb.DBObject, boolean)
with ensureID=trueo
- DBObject
to which to add fieldspublic final java.lang.Object apply(DBObject jo, boolean ensureID)
doapply(com.mongodb.DBObject)
, optionally adding an automatic _id fieldjo
- object to add fields toensureID
- whether to add an _id
fieldo
public final WriteResult save(DBObject jo)
save(com.mongodb.DBObject, com.mongodb.WriteConcern)
with default WriteConcernjo
- the DBObject
to save
will add _id
field to jo if neededpublic final WriteResult save(DBObject jo, WriteConcern concern) throws MongoException
jo
- the DBObject
to saveconcern
- the write concernMongoException
public void dropIndexes() throws MongoException
MongoException
public void dropIndexes(java.lang.String name) throws MongoException
name
- the index nameMongoException
public void drop() throws MongoException
MongoException
public long count() throws MongoException
MongoException
public long count(DBObject query) throws MongoException
query
- query to matchMongoException
public long getCount() throws MongoException
getCount(com.mongodb.DBObject, com.mongodb.DBObject)
with an empty query and null fields.MongoException
public long getCount(DBObject query) throws MongoException
getCount(com.mongodb.DBObject, com.mongodb.DBObject)
with null fields.query
- query to matchMongoException
public long getCount(DBObject query, DBObject fields) throws MongoException
getCount(com.mongodb.DBObject, com.mongodb.DBObject, long, long)
with limit=0 and skip=0query
- query to matchfields
- fields to returnMongoException
public long getCount(DBObject query, DBObject fields, long limit, long skip) throws MongoException
query
- query to select documents to countfields
- fields to returnlimit
- limit the count to this valueskip
- number of entries to skipMongoException
public DBCollection rename(java.lang.String newName) throws MongoException
newName
- new collection name (not a full namespace)MongoException
public DBCollection rename(java.lang.String newName, boolean dropTarget) throws MongoException
newName
- new collection name (not a full namespace)dropTarget
- if a collection with the new name exists, whether or not to drop itMongoException
public DBObject group(DBObject key, DBObject cond, DBObject initial, java.lang.String reduce) throws MongoException
group(com.mongodb.DBObject, com.mongodb.DBObject, com.mongodb.DBObject, java.lang.String, java.lang.String)
with finalize=nullkey
- - { a : true }cond
- - optional condition on queryreduce
- javascript reduce functioninitial
- initial value for first match on a keyMongoException
public DBObject group(DBObject key, DBObject cond, DBObject initial, java.lang.String reduce, java.lang.String finalize) throws MongoException
key
- - { a : true }cond
- - optional condition on queryreduce
- javascript reduce functioninitial
- initial value for first match on a keyfinalize
- An optional function that can operate on the result(s) of the reduce function.MongoException
public DBObject group(GroupCommand cmd)
cmd
- the group commandMongoException
@Deprecated public DBObject group(DBObject args) throws MongoException
group(com.mongodb.GroupCommand)
which is more standard
Applies a group operationargs
- object representing the arguments to the group functionMongoException
public java.util.List distinct(java.lang.String key)
key
- public java.util.List distinct(java.lang.String key, DBObject query)
key
- query
- query to matchpublic MapReduceOutput mapReduce(java.lang.String map, java.lang.String reduce, java.lang.String outputTarget, DBObject query) throws MongoException
map
- map function in javascript codeoutputTarget
- optional - leave null if want to use temp collectionreduce
- reduce function in javascript codequery
- to matchMongoException
public MapReduceOutput mapReduce(java.lang.String map, java.lang.String reduce, java.lang.String outputTarget, MapReduceCommand.OutputType outputType, DBObject query) throws MongoException
map
- map function in javascript codeoutputTarget
- optional - leave null if want to use temp collectionoutputType
- set the type of job outputreduce
- reduce function in javascript codequery
- to matchMongoException
public MapReduceOutput mapReduce(MapReduceCommand command) throws MongoException
command
- object representing the parametersMongoException
public MapReduceOutput mapReduce(DBObject command) throws MongoException
command
- object representing the parametersMongoException
public java.util.List<DBObject> getIndexInfo()
public void dropIndex(DBObject keys) throws MongoException
keys
- keys of the indexMongoException
public void dropIndex(java.lang.String name) throws MongoException
name
- name of index to dropMongoException
public CommandResult getStats()
public boolean isCapped()
public DBCollection getCollection(java.lang.String n)
Which is equilalent toDBCollection users = mongo.getCollection( "wiki" ).getCollection( "users" );
DBCollection users = mongo.getCollection( "wiki.users" );
n
- the name of the collection to findpublic java.lang.String getName()
public java.lang.String getFullName()
public DB getDB()
protected boolean checkReadOnly(boolean strict)
strict
- if an exception should be thrown if the database is read-onlyjava.lang.RuntimeException
- if the database is read-only and strict
is setpublic int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public void setObjectClass(java.lang.Class c)
c
- the classjava.lang.IllegalArgumentException
- if c
is not a DBObjectpublic java.lang.Class getObjectClass()
public void setInternalClass(java.lang.String path, java.lang.Class c)
path
- c
- protected java.lang.Class getInternalClass(java.lang.String path)
path
- public void setWriteConcern(WriteConcern concern)
WriteConcern
for more information.concern
- write concern to usepublic WriteConcern getWriteConcern()
public void slaveOk()
public void addOption(int option)
option
- public void setOptions(int options)
options
- public void resetOptions()
public int getOptions()
public void setDBDecoderFactory(DBDecoderFactory dbDecoderFactory)
public DBDecoderFactory getDBDecoderFactory()