public function find($collectionName, $condition, $options = [])
{
$queryBuilder = $this->db->getQueryBuilder();
$this->document = $queryBuilder->buildCondition($condition);
if (isset($options['projection'])) {
$options['projection'] = $queryBuilder->buildSelectFields($options['projection']);
}
if (isset($options['sort'])) {
$options['sort'] = $queryBuilder->buildSortFields($options['sort']);
}
if (array_key_exists('limit', $options)) {
if ($options['limit'] === null) {
unset($options['limit']);
} else {
$options['limit'] = (int) $options['limit'];
}
}
if (array_key_exists('skip', $options)) {
if ($options['skip'] === null) {
unset($options['skip']);
} else {
$options['skip'] = (int) $options['skip'];
}
}
return $this->query($collectionName, $options);
}