// clone first
BSONObject queryValueClone = new BasicBSONObject(((BSONObject) queryValue).toMap());
for (String queryOperator : keySet) {
Object subQuery = queryValueClone.removeField(queryOperator);
if (queryOperator.equals(QueryOperator.ALL.getValue())) {
if (!checkMatchesAllValues(subQuery, value)) {
return false;
}