Inserito metodo di count per il search
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user