public function testGetDocumentByReference() { // create document $document = $this->collection->createDocument(array('param' => 'value'))->save(); // invalid col and db $foundDocument = $this->collection->getDocumentByReference(array('$ref' => 'some_collection', '$db' => 'some_db', '$id' => $document->getId()), false); $this->assertNull($foundDocument); /// invalid db $foundDocument = $this->collection->getDocumentByReference(array('$ref' => $this->collection->getName(), '$db' => 'some_db', '$id' => $document->getId()), false); $this->assertNull($foundDocument); // all valid $foundDocument = $this->collection->getDocumentByReference(array('$ref' => $this->collection->getName(), '$db' => $this->collection->getDatabase()->getName(), '$id' => $document->getId()), false); $this->assertSame((string) $document->getId(), (string) $foundDocument->getId()); }
/** * * @return \MongoCursor */ private function getCursor() { if ($this->cursor) { return $this->cursor; } $this->cursor = $this->collection->getMongoCollection()->find($this->expression->toArray(), $this->fields); if ($this->skip) { $this->cursor->skip($this->skip); } if ($this->limit) { $this->cursor->limit($this->limit); } if ($this->options['batchSize']) { $this->cursor->batchSize($this->options['batchSize']); } if ($this->options['clientTimeout']) { $this->cursor->timeout($this->options['clientTimeout']); } if ($this->options['serverTimeout']) { $this->cursor->maxTimeMS($this->options['clientTimeout']); } if ($this->sort) { $this->cursor->sort($this->sort); } if ($this->hint) { $this->cursor->hint($this->hint); } // log request if ($this->client->hasLogger()) { $this->client->getLogger()->debug(get_called_class() . ': ' . json_encode(array('collection' => $this->collection->getName(), 'query' => $this->expression->toArray(), 'project' => $this->fields, 'sort' => $this->sort))); } $this->cursor->rewind(); // define read preferences if ($this->readPreference) { $this->cursor->setReadPreference($this->readPreference['type'], $this->readPreference['tagsets']); } return $this->cursor; }