public static DBObject applyIncludeFields(DBObject bsonObject, final Set<String> includeFields) { if (includeFields == null) { return bsonObject; } DBObject filteredObject = new BasicDBObject(); for (String field : bsonObject.keySet()) { if (includeFields.contains(field)) { filteredObject.put(field, bsonObject.get(field)); } } for (String field : includeFields) { if (field.contains(".")) { String rootObject = field.substring(0, field.indexOf(".")); // String childObject = field.substring(field.indexOf(".") + 1); Object object = bsonObject.get(rootObject); if (object instanceof DBObject) { DBObject object2 = (DBObject) object; // object2 = applyIncludeFields(object2, new // HashSet<String>(Arrays.asList(childObject))); System.out.println(getChildItems(rootObject, includeFields)); object2 = applyIncludeFields(object2, getChildItems(rootObject, includeFields)); filteredObject.put(rootObject, object2); } } } return filteredObject; }
public static DBObject applyFieldFilter(DBObject object, final Set<String> includeFields, final Set<String> excludeFields) { if (object instanceof GridFSFile) { GridFSFile file = (GridFSFile) object; DBObject metadata = file.getMetaData(); if (metadata != null) { file.setMetaData(applyFieldFilter(metadata, includeFields, excludeFields)); } } else { object = MongoDBHelper.applyExcludeFields(object, excludeFields); object = MongoDBHelper.applyIncludeFields(object, includeFields); } return object; } }
private DBObject applyFieldFilter(DBObject object) { if (object instanceof GridFSFile) { GridFSFile file = (GridFSFile) object; DBObject metadata = file.getMetaData(); if (metadata != null) { file.setMetaData(applyFieldFilter(metadata)); } } else { object = MongoDBHelper.applyExcludeFields(object, definition.getExcludeFields()); object = MongoDBHelper.applyIncludeFields(object, definition.getIncludeFields()); } return object; }
private DBObject applyFieldFilter(DBObject object) { if (object instanceof GridFSFile) { GridFSFile file = (GridFSFile) object; DBObject metadata = file.getMetaData(); if (metadata != null) { file.setMetaData(applyFieldFilter(metadata)); } } else { object = MongoDBHelper.applyExcludeFields(object, definition.getExcludeFields()); object = MongoDBHelper.applyIncludeFields(object, definition.getIncludeFields()); } return object; }