package cz.cuni.mff.d3s.been.objectrepository.mongo;
import java.util.Collection;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import cz.cuni.mff.d3s.been.persistence.QueryAnswer;
import cz.cuni.mff.d3s.been.persistence.QueryAnswerFactory;
import cz.cuni.mff.d3s.been.persistence.QueryExecutionException;
import cz.cuni.mff.d3s.been.storage.QueryExecutor;
/**
* A delete query executor for MongoDB
*
* @author darklight
*/
class MongoDeleteQueryExecutor implements QueryExecutor {
private final Collection<DBCollection> targets;
private final DBObject filter;
/**
* Creates new MongoDeleteQueryExecutor.
*
* @param targets
* targets of the query
* @param filter
* filter of objects
*/
MongoDeleteQueryExecutor(Collection<DBCollection> targets, DBObject filter) {
this.targets = targets;
this.filter = filter;
}
@Override
public QueryAnswer execute() throws QueryExecutionException {
for (DBCollection coll : targets) {
coll.remove(filter);
}
return QueryAnswerFactory.deleted();
}
}