@Override
public QueryResult<Long> count(final Query query, final String user, final StudyAclEntry.StudyPermissions studyPermissions)
throws CatalogDBException, CatalogAuthorizationException {
filterOutDeleted(query);
StudyAclEntry.StudyPermissions studyPermission = (studyPermissions == null
? StudyAclEntry.StudyPermissions.VIEW_COHORTS : studyPermissions);
Document studyDocument = getStudyDocument(query);
Document queryForAuthorisedEntries = getQueryForAuthorisedEntries(studyDocument, user, studyPermission.name(),
studyPermission.getCohortPermission().name(), Entity.COHORT.name());
Bson bson = parseQuery(query, false, queryForAuthorisedEntries);
logger.debug("Cohort count: query : {}, dbTime: {}", bson.toBsonDocument(Document.class, MongoClient.getDefaultCodecRegistry()));
return cohortCollection.count(bson);
}