示例#1
0
 /**
  * {@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;
 }
示例#2
0
 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))));
 }