code: public function find(Mapper $mapper, array $query = [])
      {
          $map        = $mapper->getMap();
          $pathMap    = $this->buildUri($map->getRemoteName());
          $pathHandle = opendir($pathMap);
          $objects    = [];
          while (false !== ($file = readdir($pathHandle))) {
              $objects[] = $this->read($map, $file);
          }
          closedir($pathHandle);
          $objects = array_filter($objects);
          $objects = array_filter(
              $objects,
              function ($object) use ($map, $query) {
                  $data   = $map->getData($object);
                  $result = 1;
                  foreach ($data as $property => $value) {
                      $result -= (isset($query[$property]) && $query[$property] != $value);
                  }
                  return (bool)$result;
              }
          );
          return array_values($objects);
      }
docs: @param Mapper $mapper
  @param array  $query
  
  @return array