@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
/ *
* Copyright 2011 - 2015 the original author or authors .
*
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
@ -48,7 +48,7 @@ import com.mongodb.WriteResult;
@@ -48,7 +48,7 @@ import com.mongodb.WriteResult;
* Interface that specifies a basic set of MongoDB operations . Implemented by { @link MongoTemplate } . Not often used but
* a useful option for extensibility and testability ( as it can be easily mocked , stubbed , or be the target of a JDK
* proxy ) .
*
*
* @author Thomas Risberg
* @author Mark Pollack
* @author Oliver Gierke
@ -61,7 +61,7 @@ public interface MongoOperations {
@@ -61,7 +61,7 @@ public interface MongoOperations {
/ * *
* The collection name used for the specified class by this template .
*
*
* @param entityClass must not be { @literal null } .
* @return
* /
@ -71,7 +71,7 @@ public interface MongoOperations {
@@ -71,7 +71,7 @@ public interface MongoOperations {
* Execute the a MongoDB command expressed as a JSON string . This will call the method JSON . parse that is part of the
* MongoDB driver to convert the JSON string to a DBObject . Any errors that result from executing this command will be
* converted into Spring ' s DAO exception hierarchy .
*
*
* @param jsonCommand a MongoDB command expressed as a JSON string .
* /
CommandResult executeCommand ( String jsonCommand ) ;
@ -79,7 +79,7 @@ public interface MongoOperations {
@@ -79,7 +79,7 @@ public interface MongoOperations {
/ * *
* Execute a MongoDB command . Any errors that result from executing this command will be converted into Spring ' s DAO
* exception hierarchy .
*
*
* @param command a MongoDB command
* /
CommandResult executeCommand ( DBObject command ) ;
@ -87,7 +87,7 @@ public interface MongoOperations {
@@ -87,7 +87,7 @@ public interface MongoOperations {
/ * *
* Execute a MongoDB command . Any errors that result from executing this command will be converted into Spring ' s DAO
* exception hierarchy .
*
*
* @param command a MongoDB command
* @param options query options to use
* @deprecated since 1 . 7 . Please use { @link # executeCommand ( DBObject , ReadPreference ) } , as the MongoDB Java driver
@ -99,7 +99,7 @@ public interface MongoOperations {
@@ -99,7 +99,7 @@ public interface MongoOperations {
/ * *
* Execute a MongoDB command . Any errors that result from executing this command will be converted into Spring ' s data
* access exception hierarchy .
*
*
* @param command a MongoDB command , must not be { @literal null } .
* @param readPreference read preferences to use , can be { @literal null } .
* @return
@ -109,7 +109,7 @@ public interface MongoOperations {
@@ -109,7 +109,7 @@ public interface MongoOperations {
/ * *
* Execute a MongoDB query and iterate over the query results on a per - document basis with a DocumentCallbackHandler .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param collectionName name of the collection to retrieve the objects from
@ -121,7 +121,7 @@ public interface MongoOperations {
@@ -121,7 +121,7 @@ public interface MongoOperations {
* Executes a { @link DbCallback } translating any exceptions as necessary .
* < p / >
* Allows for returning a result object , that is a domain object or a collection of domain objects .
*
*
* @param < T > return type
* @param action callback object that specifies the MongoDB actions to perform on the passed in DB instance .
* @return a result object returned by the action or < tt > null < / tt >
@ -132,7 +132,7 @@ public interface MongoOperations {
@@ -132,7 +132,7 @@ public interface MongoOperations {
* Executes the given { @link CollectionCallback } on the entity collection of the specified class .
* < p / >
* Allows for returning a result object , that is a domain object or a collection of domain objects .
*
*
* @param entityClass class that determines the collection to use
* @param < T > return type
* @param action callback object that specifies the MongoDB action
@ -144,7 +144,7 @@ public interface MongoOperations {
@@ -144,7 +144,7 @@ public interface MongoOperations {
* Executes the given { @link CollectionCallback } on the collection of the given name .
* < p / >
* Allows for returning a result object , that is a domain object or a collection of domain objects .
*
*
* @param < T > return type
* @param collectionName the name of the collection that specifies which DBCollection instance will be passed into
* @param action callback object that specifies the MongoDB action the callback action .
@ -158,7 +158,7 @@ public interface MongoOperations {
@@ -158,7 +158,7 @@ public interface MongoOperations {
* href = http : //www.mongodb.org/display/DOCS/Java+Driver+Concurrency>Java Driver Concurrency</a>}
* < p / >
* Allows for returning a result object , that is a domain object or a collection of domain objects .
*
*
* @param < T > return type
* @param action callback that specified the MongoDB actions to perform on the DB instance
* @return a result object returned by the action or < tt > null < / tt >
@ -173,7 +173,7 @@ public interface MongoOperations {
@@ -173,7 +173,7 @@ public interface MongoOperations {
* { @link Cursor } .
* < p >
* Returns a { @link CloseableIterator } that wraps the a Mongo DB { @link Cursor } that needs to be closed .
*
*
* @param < T > element return type
* @param query
* @param entityType
@ -184,7 +184,7 @@ public interface MongoOperations {
@@ -184,7 +184,7 @@ public interface MongoOperations {
/ * *
* Create an uncapped collection with a name based on the provided entity class .
*
*
* @param entityClass class that determines the collection to create
* @return the created collection
* /
@ -192,7 +192,7 @@ public interface MongoOperations {
@@ -192,7 +192,7 @@ public interface MongoOperations {
/ * *
* Create a collection with a name based on the provided entity class using the options .
*
*
* @param entityClass class that determines the collection to create
* @param collectionOptions options to use when creating the collection .
* @return the created collection
@ -201,7 +201,7 @@ public interface MongoOperations {
@@ -201,7 +201,7 @@ public interface MongoOperations {
/ * *
* Create an uncapped collection with the provided name .
*
*
* @param collectionName name of the collection
* @return the created collection
* /
@ -209,7 +209,7 @@ public interface MongoOperations {
@@ -209,7 +209,7 @@ public interface MongoOperations {
/ * *
* Create a collection with the provided name and options .
*
*
* @param collectionName name of the collection
* @param collectionOptions options to use when creating the collection .
* @return the created collection
@ -218,7 +218,7 @@ public interface MongoOperations {
@@ -218,7 +218,7 @@ public interface MongoOperations {
/ * *
* A set of collection names .
*
*
* @return list of collection names
* /
Set < String > getCollectionNames ( ) ;
@ -227,7 +227,7 @@ public interface MongoOperations {
@@ -227,7 +227,7 @@ public interface MongoOperations {
* Get a collection by name , creating it if it doesn ' t exist .
* < p / >
* Translate any exceptions as necessary .
*
*
* @param collectionName name of the collection
* @return an existing collection or a newly created one .
* /
@ -237,7 +237,7 @@ public interface MongoOperations {
@@ -237,7 +237,7 @@ public interface MongoOperations {
* Check to see if a collection with a name indicated by the entity class exists .
* < p / >
* Translate any exceptions as necessary .
*
*
* @param entityClass class that determines the name of the collection
* @return true if a collection with the given name is found , false otherwise .
* /
@ -247,7 +247,7 @@ public interface MongoOperations {
@@ -247,7 +247,7 @@ public interface MongoOperations {
* Check to see if a collection with a given name exists .
* < p / >
* Translate any exceptions as necessary .
*
*
* @param collectionName name of the collection
* @return true if a collection with the given name is found , false otherwise .
* /
@ -257,7 +257,7 @@ public interface MongoOperations {
@@ -257,7 +257,7 @@ public interface MongoOperations {
* Drop the collection with the name indicated by the entity class .
* < p / >
* Translate any exceptions as necessary .
*
*
* @param entityClass class that determines the collection to drop / delete .
* /
< T > void dropCollection ( Class < T > entityClass ) ;
@ -266,36 +266,39 @@ public interface MongoOperations {
@@ -266,36 +266,39 @@ public interface MongoOperations {
* Drop the collection with the given name .
* < p / >
* Translate any exceptions as necessary .
*
*
* @param collectionName name of the collection to drop / delete .
* /
void dropCollection ( String collectionName ) ;
/ * *
* Returns the operations that can be performed on indexes
*
*
* @return index operations on the named collection
* /
IndexOperations indexOps ( String collectionName ) ;
/ * *
* Returns the operations that can be performed on indexes
*
*
* @return index operations on the named collection associated with the given entity class
* /
IndexOperations indexOps ( Class < ? > entityClass ) ;
/ * *
* Returns the { @link ScriptOperations } that can be performed on { @link com . mongodb . DB } level .
*
*
* @return
* @since 1 . 7
* /
ScriptOperations scriptOps ( ) ;
/ * *
* Returns a new { @link BulkOperations } for the given collection .
*
* Returns a new { @link BulkOperations } for the given collection . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping , etc . is not available for { @literal update } or
* { @literal remove } operations in bulk mode due to the lack of domain type information . Use
* { @link # bulkOps ( BulkMode , Class , String ) } to get full type specific support .
*
* @param mode the { @link BulkMode } to use for bulk operations , must not be { @literal null } .
* @param collectionName the name of the collection to work on , must not be { @literal null } or empty .
* @return { @link BulkOperations } on the named collection
@ -304,7 +307,7 @@ public interface MongoOperations {
@@ -304,7 +307,7 @@ public interface MongoOperations {
/ * *
* Returns a new { @link BulkOperations } for the given entity type .
*
*
* @param mode the { @link BulkMode } to use for bulk operations , must not be { @literal null } .
* @param entityType the name of the entity class , must not be { @literal null } .
* @return { @link BulkOperations } on the named collection associated of the given entity class .
@ -313,7 +316,7 @@ public interface MongoOperations {
@@ -313,7 +316,7 @@ public interface MongoOperations {
/ * *
* Returns a new { @link BulkOperations } for the given entity type and collection name .
*
*
* @param mode the { @link BulkMode } to use for bulk operations , must not be { @literal null } .
* @param entityClass the name of the entity class , must not be { @literal null } .
* @param collectionName the name of the collection to work on , must not be { @literal null } or empty .
@ -329,7 +332,7 @@ public interface MongoOperations {
@@ -329,7 +332,7 @@ public interface MongoOperations {
* < p / >
* If your collection does not contain a homogeneous collection of types , this operation will not be an efficient way
* to map objects since the test for class type is done in the client and not on the server .
*
*
* @param entityClass the parameterized type of the returned list
* @return the converted collection
* /
@ -343,7 +346,7 @@ public interface MongoOperations {
@@ -343,7 +346,7 @@ public interface MongoOperations {
* < p / >
* If your collection does not contain a homogeneous collection of types , this operation will not be an efficient way
* to map objects since the test for class type is done in the client and not on the server .
*
*
* @param entityClass the parameterized type of the returned list .
* @param collectionName name of the collection to retrieve the objects from
* @return the converted collection
@ -353,7 +356,7 @@ public interface MongoOperations {
@@ -353,7 +356,7 @@ public interface MongoOperations {
/ * *
* Execute a group operation over the entire collection . The group operation entity class should match the ' shape ' of
* the returned object that takes int account the initial document structure as well as any finalize functions .
*
*
* @param criteria The criteria that restricts the row that are considered for grouping . If not specified all rows are
* considered .
* @param inputCollectionName the collection where the group operation will read from
@ -368,7 +371,7 @@ public interface MongoOperations {
@@ -368,7 +371,7 @@ public interface MongoOperations {
* Execute a group operation restricting the rows to those which match the provided Criteria . The group operation
* entity class should match the ' shape ' of the returned object that takes int account the initial document structure
* as well as any finalize functions .
*
*
* @param criteria The criteria that restricts the row that are considered for grouping . If not specified all rows are
* considered .
* @param inputCollectionName the collection where the group operation will read from
@ -382,7 +385,7 @@ public interface MongoOperations {
@@ -382,7 +385,7 @@ public interface MongoOperations {
/ * *
* Execute an aggregation operation . The raw results will be mapped to the given entity class . The name of the
* inputCollection is derived from the inputType of the aggregation .
*
*
* @param aggregation The { @link TypedAggregation } specification holding the aggregation operations , must not be
* { @literal null } .
* @param collectionName The name of the input collection to use for the aggreation .
@ -395,7 +398,7 @@ public interface MongoOperations {
@@ -395,7 +398,7 @@ public interface MongoOperations {
/ * *
* Execute an aggregation operation . The raw results will be mapped to the given entity class . The name of the
* inputCollection is derived from the inputType of the aggregation .
*
*
* @param aggregation The { @link TypedAggregation } specification holding the aggregation operations , must not be
* { @literal null } .
* @param outputType The parameterized type of the returned list , must not be { @literal null } .
@ -406,7 +409,7 @@ public interface MongoOperations {
@@ -406,7 +409,7 @@ public interface MongoOperations {
/ * *
* Execute an aggregation operation . The raw results will be mapped to the given entity class .
*
*
* @param aggregation The { @link Aggregation } specification holding the aggregation operations , must not be
* { @literal null } .
* @param inputType the inputType where the aggregation operation will read from , must not be { @literal null } or
@ -419,7 +422,7 @@ public interface MongoOperations {
@@ -419,7 +422,7 @@ public interface MongoOperations {
/ * *
* Execute an aggregation operation . The raw results will be mapped to the given entity class .
*
*
* @param aggregation The { @link Aggregation } specification holding the aggregation operations , must not be
* { @literal null } .
* @param collectionName the collection where the aggregation operation will read from , must not be { @literal null } or
@ -432,7 +435,7 @@ public interface MongoOperations {
@@ -432,7 +435,7 @@ public interface MongoOperations {
/ * *
* Execute a map - reduce operation . The map - reduce operation will be formed with an output type of INLINE
*
*
* @param inputCollectionName the collection where the map - reduce will read from
* @param mapFunction The JavaScript map function
* @param reduceFunction The JavaScript reduce function
@ -445,7 +448,7 @@ public interface MongoOperations {
@@ -445,7 +448,7 @@ public interface MongoOperations {
/ * *
* Execute a map - reduce operation that takes additional map - reduce options .
*
*
* @param inputCollectionName the collection where the map - reduce will read from
* @param mapFunction The JavaScript map function
* @param reduceFunction The JavaScript reduce function
@ -459,7 +462,7 @@ public interface MongoOperations {
@@ -459,7 +462,7 @@ public interface MongoOperations {
/ * *
* Execute a map - reduce operation that takes a query . The map - reduce operation will be formed with an output type of
* INLINE
*
*
* @param query The query to use to select the data for the map phase
* @param inputCollectionName the collection where the map - reduce will read from
* @param mapFunction The JavaScript map function
@ -473,7 +476,7 @@ public interface MongoOperations {
@@ -473,7 +476,7 @@ public interface MongoOperations {
/ * *
* Execute a map - reduce operation that takes a query and additional map - reduce options
*
*
* @param query The query to use to select the data for the map phase
* @param inputCollectionName the collection where the map - reduce will read from
* @param mapFunction The JavaScript map function
@ -490,7 +493,7 @@ public interface MongoOperations {
@@ -490,7 +493,7 @@ public interface MongoOperations {
* information to determine the collection the query is ran against . Note , that MongoDB limits the number of results
* by default . Make sure to add an explicit limit to the { @link NearQuery } if you expect a particular number of
* results .
*
*
* @param near must not be { @literal null } .
* @param entityClass must not be { @literal null } .
* @return
@ -501,7 +504,7 @@ public interface MongoOperations {
@@ -501,7 +504,7 @@ public interface MongoOperations {
* Returns { @link GeoResults } for all entities matching the given { @link NearQuery } . Note , that MongoDB limits the
* number of results by default . Make sure to add an explicit limit to the { @link NearQuery } if you expect a
* particular number of results .
*
*
* @param near must not be { @literal null } .
* @param entityClass must not be { @literal null } .
* @param collectionName the collection to trigger the query against . If no collection name is given the entity class
@ -519,7 +522,7 @@ public interface MongoOperations {
@@ -519,7 +522,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -536,7 +539,7 @@ public interface MongoOperations {
@@ -536,7 +539,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -546,8 +549,10 @@ public interface MongoOperations {
@@ -546,8 +549,10 @@ public interface MongoOperations {
< T > T findOne ( Query query , Class < T > entityClass , String collectionName ) ;
/ * *
* Determine result of given { @link Query } contains at least one element .
*
* Determine result of given { @link Query } contains at least one element . < br / >
* < strong > NOTE : < / strong > Any additional support for query / field mapping , etc . is not available due to the lack of
* domain type information . Use { @link # exists ( Query , Class , String ) } to get full type specific support .
*
* @param query the { @link Query } class that specifies the criteria used to find a record .
* @param collectionName name of the collection to check for objects .
* @return
@ -556,7 +561,7 @@ public interface MongoOperations {
@@ -556,7 +561,7 @@ public interface MongoOperations {
/ * *
* Determine result of given { @link Query } contains at least one element .
*
*
* @param query the { @link Query } class that specifies the criteria used to find a record .
* @param entityClass the parameterized type .
* @return
@ -565,7 +570,7 @@ public interface MongoOperations {
@@ -565,7 +570,7 @@ public interface MongoOperations {
/ * *
* Determine result of given { @link Query } contains at least one element .
*
*
* @param query the { @link Query } class that specifies the criteria used to find a record .
* @param entityClass the parameterized type .
* @param collectionName name of the collection to check for objects .
@ -581,7 +586,7 @@ public interface MongoOperations {
@@ -581,7 +586,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -597,7 +602,7 @@ public interface MongoOperations {
@@ -597,7 +602,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -609,7 +614,7 @@ public interface MongoOperations {
@@ -609,7 +614,7 @@ public interface MongoOperations {
/ * *
* Returns a document with the given id mapped onto the given class . The collection the query is ran against will be
* derived from the given target class as well .
*
*
* @param < T >
* @param id the id of the document to return .
* @param entityClass the type the document shall be converted into .
@ -619,7 +624,7 @@ public interface MongoOperations {
@@ -619,7 +624,7 @@ public interface MongoOperations {
/ * *
* Returns the document with the given id from the given collection mapped onto the given target class .
*
*
* @param id the id of the document to return
* @param entityClass the type to convert the document to
* @param collectionName the collection to query for the document
@ -631,7 +636,7 @@ public interface MongoOperations {
@@ -631,7 +636,7 @@ public interface MongoOperations {
/ * *
* Triggers < a href = "http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/" > findAndModify
* < a / > to apply provided { @link Update } on documents matching { @link Criteria } of given { @link Query } .
*
*
* @param query the { @link Query } class that specifies the { @link Criteria } used to find a record and also an optional
* fields specification .
* @param update the { @link Update } to apply on matching documents .
@ -643,7 +648,7 @@ public interface MongoOperations {
@@ -643,7 +648,7 @@ public interface MongoOperations {
/ * *
* Triggers < a href = "http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/" > findAndModify
* < a / > to apply provided { @link Update } on documents matching { @link Criteria } of given { @link Query } .
*
*
* @param query the { @link Query } class that specifies the { @link Criteria } used to find a record and also an optional
* fields specification .
* @param update the { @link Update } to apply on matching documents .
@ -657,7 +662,7 @@ public interface MongoOperations {
@@ -657,7 +662,7 @@ public interface MongoOperations {
* Triggers < a href = "http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/" > findAndModify
* < a / > to apply provided { @link Update } on documents matching { @link Criteria } of given { @link Query } taking
* { @link FindAndModifyOptions } into account .
*
*
* @param query the { @link Query } class that specifies the { @link Criteria } used to find a record and also an optional
* fields specification .
* @param update the { @link Update } to apply on matching documents .
@ -671,7 +676,7 @@ public interface MongoOperations {
@@ -671,7 +676,7 @@ public interface MongoOperations {
* Triggers < a href = "http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/" > findAndModify
* < a / > to apply provided { @link Update } on documents matching { @link Criteria } of given { @link Query } taking
* { @link FindAndModifyOptions } into account .
*
*
* @param query the { @link Query } class that specifies the { @link Criteria } used to find a record and also an optional
* fields specification .
* @param update the { @link Update } to apply on matching documents .
@ -692,7 +697,7 @@ public interface MongoOperations {
@@ -692,7 +697,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -709,7 +714,7 @@ public interface MongoOperations {
@@ -709,7 +714,7 @@ public interface MongoOperations {
* < p / >
* The query is specified as a { @link Query } which can be created either using the { @link BasicQuery } or the more
* feature rich { @link Query } .
*
*
* @param query the query class that specifies the criteria used to find a record and also an optional fields
* specification
* @param entityClass the parameterized type of the returned list .
@ -720,7 +725,7 @@ public interface MongoOperations {
@@ -720,7 +725,7 @@ public interface MongoOperations {
/ * *
* Returns the number of documents for the given { @link Query } by querying the collection of the given entity class .
*
*
* @param query
* @param entityClass must not be { @literal null } .
* @return
@ -730,8 +735,8 @@ public interface MongoOperations {
@@ -730,8 +735,8 @@ public interface MongoOperations {
/ * *
* Returns the number of documents for the given { @link Query } querying the given collection . The given { @link Query }
* must solely consist of document field references as we lack type information to map potential property references
* onto document fields . TO make sure the query gets mapped , u se { @link # count ( Query , Class , String ) } .
*
* onto document fields . U se { @link # count ( Query , Class , String ) } to get full type specific support .
*
* @param query
* @param collectionName must not be { @literal null } or empty .
* @return
@ -742,7 +747,7 @@ public interface MongoOperations {
@@ -742,7 +747,7 @@ public interface MongoOperations {
/ * *
* Returns the number of documents for the given { @link Query } by querying the given collection using the given entity
* class to map the given { @link Query } .
*
*
* @param query
* @param entityClass must not be { @literal null } .
* @param collectionName must not be { @literal null } or empty .
@ -763,7 +768,7 @@ public interface MongoOperations {
@@ -763,7 +768,7 @@ public interface MongoOperations {
* < p / >
* < p / >
* Insert is used to initially store the object into the database . To update an existing object use the save method .
*
*
* @param objectToSave the object to store in the collection .
* /
void insert ( Object objectToSave ) ;
@ -775,7 +780,7 @@ public interface MongoOperations {
@@ -775,7 +780,7 @@ public interface MongoOperations {
* configured otherwise , an instance of MappingMongoConverter will be used .
* < p / >
* Insert is used to initially store the object into the database . To update an existing object use the save method .
*
*
* @param objectToSave the object to store in the collection
* @param collectionName name of the collection to store the object in
* /
@ -783,7 +788,7 @@ public interface MongoOperations {
@@ -783,7 +788,7 @@ public interface MongoOperations {
/ * *
* Insert a Collection of objects into a collection in a single batch write to the database .
*
*
* @param batchToSave the list of objects to save .
* @param entityClass class that determines the collection to use
* /
@ -791,7 +796,7 @@ public interface MongoOperations {
@@ -791,7 +796,7 @@ public interface MongoOperations {
/ * *
* Insert a list of objects into the specified collection in a single batch write to the database .
*
*
* @param batchToSave the list of objects to save .
* @param collectionName name of the collection to store the object in
* /
@ -800,7 +805,7 @@ public interface MongoOperations {
@@ -800,7 +805,7 @@ public interface MongoOperations {
/ * *
* Insert a mixed Collection of objects into a database collection determining the collection name to use based on the
* class .
*
*
* @param collectionToSave the list of objects to save .
* /
void insertAll ( Collection < ? extends Object > objectsToSave ) ;
@ -817,7 +822,7 @@ public interface MongoOperations {
@@ -817,7 +822,7 @@ public interface MongoOperations {
* property type will be handled by Spring ' s BeanWrapper class that leverages Type Conversion API . See
* < a href = "http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert" >
* Spring ' s Type Conversion " < / a > for more details .
*
*
* @param objectToSave the object to store in the collection
* /
void save ( Object objectToSave ) ;
@ -834,7 +839,7 @@ public interface MongoOperations {
@@ -834,7 +839,7 @@ public interface MongoOperations {
* property type will be handled by Spring ' s BeanWrapper class that leverages Type Cobnversion API . See < a
* http : //docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert">Spring's
* Type Conversion " < / a > for more details .
*
*
* @param objectToSave the object to store in the collection
* @param collectionName name of the collection to store the object in
* /
@ -843,7 +848,7 @@ public interface MongoOperations {
@@ -843,7 +848,7 @@ public interface MongoOperations {
/ * *
* Performs an upsert . If no document is found that matches the query , a new document is created and inserted by
* combining the query document and the update document .
*
*
* @param query the query document that specifies the criteria used to select a record to be upserted
* @param update the update document that contains the updated object or $ operators to manipulate the existing object
* @param entityClass class that determines the collection to use
@ -853,8 +858,10 @@ public interface MongoOperations {
@@ -853,8 +858,10 @@ public interface MongoOperations {
/ * *
* Performs an upsert . If no document is found that matches the query , a new document is created and inserted by
* combining the query document and the update document .
*
* combining the query document and the update document . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping , versions , etc . is not available due to the lack of
* domain type information . Use { @link # upsert ( Query , Update , Class , String ) } to get full type specific support .
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -866,7 +873,7 @@ public interface MongoOperations {
@@ -866,7 +873,7 @@ public interface MongoOperations {
/ * *
* Performs an upsert . If no document is found that matches the query , a new document is created and inserted by
* combining the query document and the update document .
*
*
* @param query the query document that specifies the criteria used to select a record to be upserted
* @param update the update document that contains the updated object or $ operators to manipulate the existing object
* @param entityClass class of the pojo to be operated on
@ -878,7 +885,7 @@ public interface MongoOperations {
@@ -878,7 +885,7 @@ public interface MongoOperations {
/ * *
* Updates the first object that is found in the collection of the entity class that matches the query document with
* the provided update document .
*
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -889,8 +896,10 @@ public interface MongoOperations {
@@ -889,8 +896,10 @@ public interface MongoOperations {
/ * *
* Updates the first object that is found in the specified collection that matches the query document criteria with
* the provided updated document .
*
* the provided updated document . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping , versions , etc . is not available due to the lack of
* domain type information . Use { @link # updateFirst ( Query , Update , Class , String ) } to get full type specific support .
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -902,7 +911,7 @@ public interface MongoOperations {
@@ -902,7 +911,7 @@ public interface MongoOperations {
/ * *
* Updates the first object that is found in the specified collection that matches the query document criteria with
* the provided updated document .
*
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -915,7 +924,7 @@ public interface MongoOperations {
@@ -915,7 +924,7 @@ public interface MongoOperations {
/ * *
* Updates all objects that are found in the collection for the entity class that matches the query document criteria
* with the provided updated document .
*
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -926,8 +935,10 @@ public interface MongoOperations {
@@ -926,8 +935,10 @@ public interface MongoOperations {
/ * *
* Updates all objects that are found in the specified collection that matches the query document criteria with the
* provided updated document .
*
* provided updated document . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping , versions , etc . is not available due to the lack of
* domain type information . Use { @link # updateMulti ( Query , Update , Class , String ) } to get full type specific support .
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -939,7 +950,7 @@ public interface MongoOperations {
@@ -939,7 +950,7 @@ public interface MongoOperations {
/ * *
* Updates all objects that are found in the collection for the entity class that matches the query document criteria
* with the provided updated document .
*
*
* @param query the query document that specifies the criteria used to select a record to be updated
* @param update the update document that contains the updated object or $ operators to manipulate the existing
* object .
@ -951,14 +962,14 @@ public interface MongoOperations {
@@ -951,14 +962,14 @@ public interface MongoOperations {
/ * *
* Remove the given object from the collection by id .
*
*
* @param object
* /
WriteResult remove ( Object object ) ;
/ * *
* Removes the given object from the given collection .
*
*
* @param object
* @param collection must not be { @literal null } or empty .
* /
@ -967,7 +978,7 @@ public interface MongoOperations {
@@ -967,7 +978,7 @@ public interface MongoOperations {
/ * *
* Remove all documents that match the provided query document criteria from the the collection used to store the
* entityClass . The Class parameter is also used to help convert the Id of the object if it is present in the query .
*
*
* @param query
* @param entityClass
* /
@ -976,7 +987,7 @@ public interface MongoOperations {
@@ -976,7 +987,7 @@ public interface MongoOperations {
/ * *
* Remove all documents that match the provided query document criteria from the the collection used to store the
* entityClass . The Class parameter is also used to help convert the Id of the object if it is present in the query .
*
*
* @param query
* @param entityClass
* @param collectionName
@ -985,18 +996,22 @@ public interface MongoOperations {
@@ -985,18 +996,22 @@ public interface MongoOperations {
/ * *
* Remove all documents from the specified collection that match the provided query document criteria . There is no
* conversion / mapping done for any criteria using the id field .
*
* conversion / mapping done for any criteria using the id field . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping is not available due to the lack of domain type
* information . Use { @link # remove ( Query , Class , String ) } to get full type specific support .
*
* @param query the query document that specifies the criteria used to remove a record
* @param collectionName name of the collection where the objects will removed
* /
WriteResult remove ( Query query , String collectionName ) ;
/ * *
* Returns and removes all documents form the specified collection that match the provided query .
*
* @param query
* @param collectionName
* Returns and removes all documents form the specified collection that match the provided query . < br / >
* < strong > NOTE : < / strong > Any additional support for field mapping is not available due to the lack of domain type
* information . Use { @link # findAllAndRemove ( Query , Class , String ) } to get full type specific support .
*
* @param query must not be { @literal null } .
* @param collectionName must not be { @literal null } .
* @return
* @since 1 . 5
* /
@ -1004,7 +1019,7 @@ public interface MongoOperations {
@@ -1004,7 +1019,7 @@ public interface MongoOperations {
/ * *
* Returns and removes all documents matching the given query form the collection used to store the entityClass .
*
*
* @param query
* @param entityClass
* @return
@ -1016,7 +1031,7 @@ public interface MongoOperations {
@@ -1016,7 +1031,7 @@ public interface MongoOperations {
* Returns and removes all documents that match the provided query document criteria from the the collection used to
* store the entityClass . The Class parameter is also used to help convert the Id of the object if it is present in
* the query .
*
*
* @param query
* @param entityClass
* @param collectionName
@ -1027,7 +1042,7 @@ public interface MongoOperations {
@@ -1027,7 +1042,7 @@ public interface MongoOperations {
/ * *
* Returns the underlying { @link MongoConverter } .
*
*
* @return
* /
MongoConverter getConverter ( ) ;