class MongoQueryExecutor implements QueryExecutor {

    public <T, R> void remove(Query<T, R> query) {
        try {
            getCollection(query.getEntityClass()).remove(
                    this.queryTranslator.translate(query),
                    this.writeConcern);
        } catch (final MongoException mx) {
            throw new DataStoreException(mx.getMessage(), mx);
        }
    }

    public  MongoQueryExecutor(
            DB db,
            WriteConcern writeConcern,
            MongoQueryTranslator queryTranslator,
            EntityResolver entityResolver,
            final int batchSize);
    public  MongoQueryExecutor(
            DB db,
            WriteConcern writeConcern,
            MongoQueryTranslator queryTranslator,
            EntityResolver entityResolver);
    public  MongoQueryExecutor(
            Mongo mongo,
            String database,
            WriteConcern writeConcern,
            MongoQueryTranslator queryTranslator,
            EntityResolver entityResolver);
    public  MongoQueryExecutor(
            Mongo mongo,
            String database,
            WriteConcern writeConcern,
            MongoQueryTranslator queryTranslator,
            EntityResolver entityResolver,
            final int batchSize);

}