Inserito metodo di count per il search

This commit is contained in:
Riccardo Di Dato
2016-03-18 22:47:57 +01:00
parent 6caa2d1d01
commit 5ecbec2cff
+29 -1
View File
@@ -311,7 +311,35 @@ class GenericDao{
}
public function searchCount($modelClass, $searchWord, array $filter = array(), array $options = array()){
return sizeof($this->search($modelClass, $searchWord,$filter,$options));
if (!is_null($modelClass)){
if (!is_subclass_of($modelClass, "DaoSaveable", true)){
throw new CoreException("Invalid return class passed to GenericDao::query ($modelClass)");
}
}
$collectionName = $modelClass::getCollectionName();
$collection = $this->database->$collectionName;
$useFilter = $filter;
$useFilter['$text'] = array('$search'=>$searchWord);
if (!array_key_exists("deleted",$useFilter)){
$useFilter["deleted"] = false;
}
if (array_key_exists("id",$useFilter)){
$useFilter["_id"] = $useFilter["id"];
unset($useFilter["id"]);
}
if (array_key_exists("_id",$useFilter) && is_string($useFilter["_id"])){
$useFilter["_id"] = new MongoId($useFilter["_id"]);
}
$cursor = $collection->find($useFilter,array('score' => array('$meta' => 'textScore')));
return $cursor->count(true);
}
}