/** * {@inheritDoc} */ public function getCursor() { if (is_null($this->cursor)) { $rawCollection = $this->connection->getRaw()->{$this->collection->getName()}; if (empty($this->criteria)) { $this->cursor = $rawCollection->find(); } else { $this->cursor = $rawCollection->find($this->criteria); } if (isset($this->sorts)) { $this->cursor->sort($this->sorts); } if (isset($this->skip)) { $this->cursor->skip($this->skip); } if (isset($this->limit)) { $this->cursor->limit($this->limit); } } return $this->cursor; }
public function testTranslateCriteria() { parent::testTranslateCriteria(); $cursor = new MongoCursor($this->collection); $message = 'Cursor::translateCriteria() should convert $prefixed to _prefixed field'; $result = $cursor->translateCriteria(array('$hidden' => 'something')); $this->assertArrayHasKey('_hidden', $result, $message); $message = 'Cursor::translateCriteria() should leave intact visible field'; $result = $cursor->translateCriteria(array('visible' => 'something')); $this->assertArrayHasKey('visible', $result, $message); $message = 'Cursor::translateCriteria() has AND operator'; $result = $cursor->translateCriteria(array('!and' => array(array('one' => 1), array('two' => 2)))); $message = 'Cursor::translateCriteria() has OR operator'; $result = $cursor->translateCriteria(array('!or' => array(array('one' => 1), array('two' => 2)))); $message = 'Cursor::translateCriteria() has AND operator'; $result = $cursor->translateCriteria(array('!or' => array(array('one' => 1), array('two' => 2)))); }