|
|
|
|
@@ -1,3 +1,18 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright 2010 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
|
|
|
|
|
*
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
*
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
package org.springframework.data.document.mongodb;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@@ -5,100 +20,371 @@ import java.util.List;
|
|
|
|
|
import com.mongodb.DBCollection;
|
|
|
|
|
import com.mongodb.DBObject;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public interface MongoOperations {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The default collection name used by this template.
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
String getDefaultCollectionName();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The default collection used by this template
|
|
|
|
|
* @return The default collection used by this template
|
|
|
|
|
*/
|
|
|
|
|
DBCollection getDefaultCollection();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
void executeCommand(String jsonCommand);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
void executeCommand(DBObject command);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Executes a {@link DBCallback} translating any exceptions as necessary
|
|
|
|
|
* Executes a {@link DBCallback} translating any exceptions as necessary.
|
|
|
|
|
*
|
|
|
|
|
* @param <T> The return type
|
|
|
|
|
* @param action The action to execute
|
|
|
|
|
* Allows for returning a result object, that is a domain object or a collection of domain objects.
|
|
|
|
|
*
|
|
|
|
|
* @return The return value of the {@link DBCallback}
|
|
|
|
|
* @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>
|
|
|
|
|
*/
|
|
|
|
|
<T> T execute(DBCallback<T> action);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Executes the given {@link CollectionCallback} on the default collection.
|
|
|
|
|
*
|
|
|
|
|
* @param <T>
|
|
|
|
|
* @param callback
|
|
|
|
|
* @return
|
|
|
|
|
* 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 action
|
|
|
|
|
* @return a result object returned by the action or <tt>null</tt>
|
|
|
|
|
*/
|
|
|
|
|
<T> T execute(CollectionCallback<T> callback);
|
|
|
|
|
<T> T execute(CollectionCallback<T> action);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Executes the given {@link CollectionCallback} on the collection of the given name.
|
|
|
|
|
*
|
|
|
|
|
* @param <T>
|
|
|
|
|
* @param callback
|
|
|
|
|
* @param collectionName
|
|
|
|
|
* @return
|
|
|
|
|
* 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 action
|
|
|
|
|
* @param collectionName the name of the collection that specifies which DBCollection instance will be passed into
|
|
|
|
|
* the callback action.
|
|
|
|
|
* @return a result object returned by the action or <tt>null</tt>
|
|
|
|
|
*/
|
|
|
|
|
<T> T execute(CollectionCallback<T> callback, String collectionName);
|
|
|
|
|
<T> T execute(CollectionCallback<T> action, String collectionName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Executes the given {@link DBCallback} within the same connection to the database so as to ensure
|
|
|
|
|
* consistency in a write heavy environment where you may read the data that you wrote. See the
|
|
|
|
|
* comments on {@see <a href=http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency>Java Driver Concurrency</a>}
|
|
|
|
|
*
|
|
|
|
|
* 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>
|
|
|
|
|
*/
|
|
|
|
|
<T> T executeInSession(DBCallback<T> action);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create an uncapped collection with the provided name.
|
|
|
|
|
* @param collectionName name of the collection
|
|
|
|
|
* @return the created collection
|
|
|
|
|
*/
|
|
|
|
|
DBCollection createCollection(String collectionName);
|
|
|
|
|
|
|
|
|
|
void createCollection(String collectionName,
|
|
|
|
|
CollectionOptions collectionOptions);
|
|
|
|
|
/**
|
|
|
|
|
* Create a collect with the provided name and options
|
|
|
|
|
* @param collectionName name of the collection
|
|
|
|
|
* @param collectionOptions options to use when creating the collection.
|
|
|
|
|
*/
|
|
|
|
|
void createCollection(String collectionName, CollectionOptions collectionOptions);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A list of collection names
|
|
|
|
|
* @return list of collection names
|
|
|
|
|
*/
|
|
|
|
|
List<String> getCollectionNames();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get a collection by name, creating it if it doesn't exist.
|
|
|
|
|
*
|
|
|
|
|
* Translate any exceptions as necessary.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection
|
|
|
|
|
* @return an existing collection or a newly created one.
|
|
|
|
|
*/
|
|
|
|
|
DBCollection getCollection(String collectionName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Check to see if a collection with a given name exists.
|
|
|
|
|
*
|
|
|
|
|
* Translate any exceptions as necessary.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection
|
|
|
|
|
* @return true if a collection with the given name is found, false otherwise.
|
|
|
|
|
*/
|
|
|
|
|
boolean collectionExists(String collectionName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Drop the collection with the given name.
|
|
|
|
|
*
|
|
|
|
|
* Translate any exceptions as necessary.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to drop/delete.
|
|
|
|
|
*/
|
|
|
|
|
void dropCollection(String collectionName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert the object into the default collection.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* If you object has an "Id' property, it will be set with the generated Id from MongoDB. If your Id property
|
|
|
|
|
* is a String then MongoDB ObjectId will be used to populate that string. Otherwise, the conversion from
|
|
|
|
|
* ObjectId to your property type will be handled by Spring's BeanWrapper class that leverages Spring 3.0's
|
|
|
|
|
* new Type Conversion API.
|
|
|
|
|
* See <a href="http://static.springsource.org/spring/docs/3.0.x/reference/validation.html#core-convert">Spring 3 Type Conversion"</a>
|
|
|
|
|
* for more details.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* 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);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert the object into the specified collection.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* Insert is used to initially store the object into the
|
|
|
|
|
* database. To update an existing object use the save method.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param objectToSave the object to store in the collection
|
|
|
|
|
*/
|
|
|
|
|
void insert(String collectionName, Object objectToSave);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert the object into the specified collection.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoWriter}
|
|
|
|
|
*
|
|
|
|
|
* Insert is used to initially store the object into the
|
|
|
|
|
* database. To update an existing object use the save method.
|
|
|
|
|
*
|
|
|
|
|
* @param <T> the type of the object to insert
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param objectToSave the object to store in the collection
|
|
|
|
|
* @param writer the writer to convert the object to save into a DBObject
|
|
|
|
|
*/
|
|
|
|
|
<T> void insert(String collectionName, T objectToSave, MongoWriter<T> writer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert a list of objects into the default collection in a single batch write to the database.
|
|
|
|
|
*
|
|
|
|
|
* @param listToSave the list of objects to save.
|
|
|
|
|
*/
|
|
|
|
|
void insertList(List<Object> listToSave);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert a list of objects into the specified collection in a single batch write to the database.
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param listToSave the list of objects to save.
|
|
|
|
|
*/
|
|
|
|
|
void insertList(String collectionName, List<Object> listToSave);
|
|
|
|
|
|
|
|
|
|
<T> void insertList(String collectionName, List<T> listToSave,
|
|
|
|
|
MongoWriter<T> writer);
|
|
|
|
|
/**
|
|
|
|
|
* Insert a list of objects into the specified collection using the provided MongoWriter instance
|
|
|
|
|
*
|
|
|
|
|
* @param <T> the type of object being saved
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param listToSave the list of objects to save.
|
|
|
|
|
* @param writer the writer to convert the object to save into a DBObject
|
|
|
|
|
*/
|
|
|
|
|
<T> void insertList(String collectionName, List<T> listToSave, MongoWriter<T> writer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Save the object to the default collection. This will perform an insert if the object is not already
|
|
|
|
|
* present, that is an 'upsert'.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* If you object has an "Id' property, it will be set with the generated Id from MongoDB. If your Id property
|
|
|
|
|
* is a String then MongoDB ObjectId will be used to populate that string. Otherwise, the conversion from
|
|
|
|
|
* ObjectId to your property type will be handled by Spring's BeanWrapper class that leverages Spring 3.0's
|
|
|
|
|
* new Type Conversion API.
|
|
|
|
|
* See <a href="http://static.springsource.org/spring/docs/3.0.x/reference/validation.html#core-convert">Spring 3 Type Conversion"</a>
|
|
|
|
|
* for more details.
|
|
|
|
|
*
|
|
|
|
|
* @param objectToSave the object to store in the collection
|
|
|
|
|
*/
|
|
|
|
|
void save(Object objectToSave);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Save the object to the specified collection. This will perform an insert if the object is not already
|
|
|
|
|
* present, that is an 'upsert'.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* If you object has an "Id' property, it will be set with the generated Id from MongoDB. If your Id property
|
|
|
|
|
* is a String then MongoDB ObjectId will be used to populate that string. Otherwise, the conversion from
|
|
|
|
|
* ObjectId to your property type will be handled by Spring's BeanWrapper class that leverages Spring 3.0's
|
|
|
|
|
* new Type Cobnversion API.
|
|
|
|
|
* See <a href="http://static.springsource.org/spring/docs/3.0.x/reference/validation.html#core-convert">Spring 3 Type Conversion"</a>
|
|
|
|
|
* for more details.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param objectToSave the object to store in the collection
|
|
|
|
|
*/
|
|
|
|
|
void save(String collectionName, Object objectToSave);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Save the object into the specified collection. This will perform an insert if the object is not already
|
|
|
|
|
* present, that is an 'upsert'.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted to the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoWriter}
|
|
|
|
|
*
|
|
|
|
|
* @param <T> the type of the object to insert
|
|
|
|
|
* @param collectionName name of the collection to store the object in
|
|
|
|
|
* @param objectToSave the object to store in the collection
|
|
|
|
|
* @param writer the writer to convert the object to save into a DBObject
|
|
|
|
|
*/
|
|
|
|
|
<T> void save(String collectionName, T objectToSave, MongoWriter<T> writer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Updates the first object that is found in the default collection that matches the query document
|
|
|
|
|
* with the provided updated document.
|
|
|
|
|
*
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to select a record to be updated
|
|
|
|
|
* @param updateDoc the update document that contains the updated object or $ operators to manipulate the
|
|
|
|
|
* existing object.
|
|
|
|
|
*/
|
|
|
|
|
void updateFirst(DBObject queryDoc, DBObject updateDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Updates the first object that is found in the specified collection that matches the query document criteria
|
|
|
|
|
* with the provided updated document.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to update the object in
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to select a record to be updated
|
|
|
|
|
* @param updateDoc the update document that contains the updated object or $ operators to manipulate the
|
|
|
|
|
* existing object.
|
|
|
|
|
*/
|
|
|
|
|
void updateFirst(String collectionName, DBObject queryDoc,
|
|
|
|
|
DBObject updateDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Updates all objects that are found in the default collection that matches the query document criteria
|
|
|
|
|
* with the provided updated document.
|
|
|
|
|
*
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to select a record to be updated
|
|
|
|
|
* @param updateDoc the update document that contains the updated object or $ operators to manipulate the
|
|
|
|
|
* existing object.
|
|
|
|
|
*/
|
|
|
|
|
void updateMulti(DBObject queryDoc, DBObject updateDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Updates all objects that are found in the specified collection that matches the query document criteria
|
|
|
|
|
* with the provided updated document.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to update the object in
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to select a record to be updated
|
|
|
|
|
* @param updateDoc the update document that contains the updated object or $ operators to manipulate the
|
|
|
|
|
* existing object.
|
|
|
|
|
*/
|
|
|
|
|
void updateMulti(String collectionName, DBObject queryDoc,
|
|
|
|
|
DBObject updateDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Remove all documents from the default collection that match the provide query document criteria.
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to remove a record
|
|
|
|
|
*/
|
|
|
|
|
void remove(DBObject queryDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Remove all documents from the specified collection that match the provide query document criteria.
|
|
|
|
|
* @param collectionName name of the collection where the objects will removed
|
|
|
|
|
* @param queryDoc the query document that specifies the criteria used to remove a record
|
|
|
|
|
*/
|
|
|
|
|
void remove(String collectionName, DBObject queryDoc);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Query for a list of objects of type T from the default collection.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* 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 targetClass the parameterized type of the returned list
|
|
|
|
|
* @return the converted collection
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> getCollection(Class<T> targetClass);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Query for a list of objects of type T from the specified collection.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* 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 collectionName name of the collection to retrieve the objects from
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @return the converted collection
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> getCollection(String collectionName, Class<T> targetClass);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Query for a list of objects of type T from the specified collection, mapping the DBObject using
|
|
|
|
|
* the provided MongoReader.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to retrieve the objects from
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @param reader the MongoReader to convert from DBObject to an object.
|
|
|
|
|
* @return the converted collection
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> getCollection(String collectionName, Class<T> targetClass,
|
|
|
|
|
MongoReader<T> reader);
|
|
|
|
|
|
|
|
|
|
@@ -113,21 +399,111 @@ public interface MongoOperations {
|
|
|
|
|
<T> List<T> queryUsingJavaScript(String collectionName, String query,
|
|
|
|
|
Class<T> targetClass, MongoReader<T> reader);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List of the specified type.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* NOTE: A generic criteria API will be introduced in a future release. You can see the
|
|
|
|
|
* <a href="https://github.com/grails/inconsequential">inconsequential</a> project for an example of how that
|
|
|
|
|
* may look.
|
|
|
|
|
*
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @return the List of converted objects
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(DBObject query, Class<T> targetClass);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List of the specified type.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @param preparer allows for customization of the DBCursor used when iterating over the result set,
|
|
|
|
|
* (apply limits, skips and so on).
|
|
|
|
|
* @return the List of converted objects.
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(DBObject query, Class<T> targetClass,
|
|
|
|
|
CursorPreparer preparer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List using the provided MongoReader
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @param reader the MongoReader to convert from DBObject to an object.
|
|
|
|
|
* @return the List of converted objects.
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(DBObject query, Class<T> targetClass,
|
|
|
|
|
MongoReader<T> reader);
|
|
|
|
|
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query,
|
|
|
|
|
Class<T> targetClass);
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List of the specified type.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* NOTE: A generic criteria API will be introduced in a future release. You can see the
|
|
|
|
|
* <a href="https://github.com/grails/inconsequential">inconsequential</a> project for an example of how that
|
|
|
|
|
* may look.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to retrieve the objects from
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @return the List of converted objects
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query, Class<T> targetClass);
|
|
|
|
|
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query,
|
|
|
|
|
Class<T> targetClass, CursorPreparer preparer);
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List of the specified type.
|
|
|
|
|
*
|
|
|
|
|
* The object is converted from the MongoDB native representation using an instance of
|
|
|
|
|
* {@see MongoConverter}. Unless configured otherwise, an
|
|
|
|
|
* instance of SimpleMongoConverter will be used.
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to retrieve the objects from
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @param preparer allows for customization of the DBCursor used when iterating over the result set,
|
|
|
|
|
* (apply limits, skips and so on).
|
|
|
|
|
* @return the List of converted objects.
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query, Class<T> targetClass, CursorPreparer preparer);
|
|
|
|
|
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query,
|
|
|
|
|
Class<T> targetClass, MongoReader<T> reader);
|
|
|
|
|
/**
|
|
|
|
|
* Map the results of an ad-hoc query on the default MongoDB collection to a List using the provided MongoReader
|
|
|
|
|
*
|
|
|
|
|
* The query document is specified as a standard DBObject. You can use the driver's QueryBuilder to
|
|
|
|
|
* more easily create a query document.
|
|
|
|
|
*
|
|
|
|
|
* @param collectionName name of the collection to retrieve the objects from
|
|
|
|
|
* @param query the query document that specifies the criteria used to find a record
|
|
|
|
|
* @param targetClass the parameterized type of the returned list.
|
|
|
|
|
* @param reader the MongoReader to convert from DBObject to an object.
|
|
|
|
|
* @return the List of converted objects.
|
|
|
|
|
*/
|
|
|
|
|
<T> List<T> query(String collectionName, DBObject query, Class<T> targetClass, MongoReader<T> reader);
|
|
|
|
|
|
|
|
|
|
}
|