private Enumerable<Object> find(DB mongoDb, String filterJson,
String projectJson, List<Map.Entry<String, Class>> fields) {
final DBCollection collection =
mongoDb.getCollection(collectionName);
final DBObject filter =
filterJson == null ? null : (DBObject) JSON.parse(filterJson);
final DBObject project =
projectJson == null ? null : (DBObject) JSON.parse(projectJson);
final Function1<DBObject, Object> getter = MongoEnumerator.getter(fields);
return new AbstractEnumerable<Object>() {
public Enumerator<Object> enumerator() {
final DBCursor cursor = collection.find(filter, project);
return new MongoEnumerator(cursor, getter);
}
};
}
|