added count() method to MongoModel
This commit is contained in:
		| @ -12,6 +12,8 @@ class MongoCommandBuilder | |||||||
|  |  | ||||||
|     const FIND = 'Find'; |     const FIND = 'Find'; | ||||||
|  |  | ||||||
|  |     const COUNT = 'Count'; | ||||||
|  |  | ||||||
|     const INSERT = 'Insert'; |     const INSERT = 'Insert'; | ||||||
|  |  | ||||||
|     const UPDATE = 'Update'; |     const UPDATE = 'Update'; | ||||||
| @ -68,9 +70,9 @@ abstract class MongoDbCommand | |||||||
|  |  | ||||||
| class FindMongoCommand extends MongoDbCommand | class FindMongoCommand extends MongoDbCommand | ||||||
| { | { | ||||||
|     protected $condition; |     protected $condition = array(); | ||||||
|  |  | ||||||
|     protected $fields; |     protected $fields = array(); | ||||||
|  |  | ||||||
|     protected $multiple = true; |     protected $multiple = true; | ||||||
|  |  | ||||||
| @ -100,6 +102,7 @@ class FindMongoCommand extends MongoDbCommand | |||||||
|             var_dump($this->condition); |             var_dump($this->condition); | ||||||
|             $condition = ob_get_clean(); |             $condition = ob_get_clean(); | ||||||
|             $result .= 'Condition: ' . $condition . PHP_EOL; |             $result .= 'Condition: ' . $condition . PHP_EOL; | ||||||
|  |             $result .= 'Type: FIND' . PHP_EOL; | ||||||
|             ob_start(); |             ob_start(); | ||||||
|             var_dump($this->fields); |             var_dump($this->fields); | ||||||
|             $fields = ob_get_clean(); |             $fields = ob_get_clean(); | ||||||
| @ -113,6 +116,48 @@ class FindMongoCommand extends MongoDbCommand | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | class CountMongoCommand extends MongoDbCommand | ||||||
|  | { | ||||||
|  |     protected $condition = array(); | ||||||
|  |  | ||||||
|  |     protected $limit = 0; | ||||||
|  |  | ||||||
|  |     protected $skip = 0; | ||||||
|  |  | ||||||
|  |     protected $multiple = true; | ||||||
|  |  | ||||||
|  |     protected function concreteExecute() | ||||||
|  |     { | ||||||
|  |         return $this->collection->count($this->condition, $this->limit, $this->skip); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     protected function checkParams() | ||||||
|  |     { | ||||||
|  |         if (isset($this->collection) && isset($this->condition) && isset($this->limit) && isset($this->skip)) { | ||||||
|  |             return true; | ||||||
|  |         } else { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function __toString() | ||||||
|  |     { | ||||||
|  |         if ($this->checkParams()) { | ||||||
|  |             $result = 'Collection: ' . $this->collection . PHP_EOL; | ||||||
|  |             $result .= 'Type: COUNT' . PHP_EOL; | ||||||
|  |             ob_start(); | ||||||
|  |             var_dump($this->condition); | ||||||
|  |             $condition = ob_get_clean(); | ||||||
|  |             $result .= 'Condition: ' . $condition . PHP_EOL; | ||||||
|  |             $result .= 'Limit: ' . $this->limit . PHP_EOL; | ||||||
|  |             $result .= 'Skip: ' . $this->skip . PHP_EOL; | ||||||
|  |             return $result; | ||||||
|  |         } else { | ||||||
|  |             return 'Command properties not set'; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| class InsertMongoCommand extends MongoDbCommand | class InsertMongoCommand extends MongoDbCommand | ||||||
| { | { | ||||||
|     protected $data; |     protected $data; | ||||||
| @ -155,6 +200,7 @@ class InsertMongoCommand extends MongoDbCommand | |||||||
|     { |     { | ||||||
|         if ($this->checkParams()) { |         if ($this->checkParams()) { | ||||||
|             $result = 'Collection: ' . $this->collection . PHP_EOL; |             $result = 'Collection: ' . $this->collection . PHP_EOL; | ||||||
|  |             $result .= 'Type: INSERT' . PHP_EOL; | ||||||
|             ob_start(); |             ob_start(); | ||||||
|             var_dump($this->data); |             var_dump($this->data); | ||||||
|             $data = ob_get_clean(); |             $data = ob_get_clean(); | ||||||
| @ -203,6 +249,7 @@ class UpdateMongoCommand extends MongoDbCommand | |||||||
|     { |     { | ||||||
|         if ($this->checkParams()) { |         if ($this->checkParams()) { | ||||||
|             $result = 'Collection: ' . $this->collection . PHP_EOL; |             $result = 'Collection: ' . $this->collection . PHP_EOL; | ||||||
|  |             $result .= 'Type: UPDATE' . PHP_EOL; | ||||||
|             ob_start(); |             ob_start(); | ||||||
|             var_dump($this->condition); |             var_dump($this->condition); | ||||||
|             $condition = ob_get_clean(); |             $condition = ob_get_clean(); | ||||||
| @ -248,6 +295,7 @@ class RemoveMongoCommand extends MongoDbCommand | |||||||
|     { |     { | ||||||
|         if ($this->checkParams()) { |         if ($this->checkParams()) { | ||||||
|             $result = 'Collection: ' . $this->collection . PHP_EOL; |             $result = 'Collection: ' . $this->collection . PHP_EOL; | ||||||
|  |             $result .= 'Type: REMOVE' . PHP_EOL; | ||||||
|             ob_start(); |             ob_start(); | ||||||
|             var_dump($this->condition); |             var_dump($this->condition); | ||||||
|             $condition = ob_get_clean(); |             $condition = ob_get_clean(); | ||||||
| @ -288,6 +336,7 @@ class CommandMongoCommand extends MongoDbCommand | |||||||
|     { |     { | ||||||
|         if ($this->checkParams()) { |         if ($this->checkParams()) { | ||||||
|             $result = 'Collection: ' . $this->collection . PHP_EOL; |             $result = 'Collection: ' . $this->collection . PHP_EOL; | ||||||
|  |             $result .= 'Type: COMMAND' . PHP_EOL; | ||||||
|             ob_start(); |             ob_start(); | ||||||
|             var_dump($this->command); |             var_dump($this->command); | ||||||
|             $command = ob_get_clean(); |             $command = ob_get_clean(); | ||||||
|  | |||||||
| @ -28,7 +28,14 @@ class MongoDriver extends NoSqlDbDriver | |||||||
|  |  | ||||||
|     public function count($collection, $query = array(), $limit = 0, $skip = 0) |     public function count($collection, $query = array(), $limit = 0, $skip = 0) | ||||||
|     { |     { | ||||||
|         return $this->getCollection($collection)->count($query, $limit, $skip); |         $command = MongoCommandBuilder::factory(MongoCommandBuilder::COUNT, $this->getCollection($collection)); | ||||||
|  |         $params = array( | ||||||
|  |             'condition' => $query, | ||||||
|  |             'limit' => $limit, | ||||||
|  |             'skip' => $skip | ||||||
|  |         ); | ||||||
|  |  | ||||||
|  |         return $this->query($command, $params)->affectedRows(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function find($collection, $condition = array(), $fields = array()) |     public function find($collection, $condition = array(), $fields = array()) | ||||||
|  | |||||||
| @ -112,6 +112,8 @@ class MongoStatement extends DbStatement | |||||||
|             } else { |             } else { | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|  |         } elseif (is_int($this->result)) { | ||||||
|  |             return $this->result; | ||||||
|         } |         } | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
| @ -151,6 +153,8 @@ class MongoStatement extends DbStatement | |||||||
|                 if (is_array($result) && isset($result['values'])) { |                 if (is_array($result) && isset($result['values'])) { | ||||||
|                     $this->result = $result['values']; |                     $this->result = $result['values']; | ||||||
|                 } |                 } | ||||||
|  |             } elseif (is_int($result)) { | ||||||
|  |                 $this->result = $result; | ||||||
|             } |             } | ||||||
|             if ($request instanceof InsertMongoCommand) { |             if ($request instanceof InsertMongoCommand) { | ||||||
|                 $this->insertId = $request->getInsertId(); |                 $this->insertId = $request->getInsertId(); | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user