/** * Returns the MongoDB instance for a class. * * @param string $className The class name. * @return Doctrine\ODM\MongoDB\MongoDB */ public function getDocumentDB($className) { $db = $this->_metadataFactory->getMetadataFor($className)->getDB(); $db = $db ? $db : $this->_config->getDefaultDB(); $db = $db ? $db : 'doctrine'; $db = sprintf('%s%s', $this->_config->getEnvironmentPrefix(), $db); if ($db && !isset($this->_documentDBs[$db])) { $database = $this->_mongo->selectDB($db); $this->_documentDBs[$db] = new MongoDB($database); } if (!isset($this->_documentDBs[$db])) { throw MongoDBException::documentNotMappedToDB($className); } return $this->_documentDBs[$db]; }
/** * Returns the MongoCollection instance for a class. * * @param string $className The class name. * @return Doctrine\ODM\MongoDB\MongoCollection */ public function getDocumentCollection($className) { $metadata = $this->_metadataFactory->getMetadataFor($className); $collection = $metadata->getCollection(); $db = $metadata->getDB(); $key = $db . '.' . $collection; if ($collection && !isset($this->_documentCollections[$key])) { if ($metadata->isFile()) { $collection = $this->_mongo->selectDB($metadata->getDB())->getGridFS($collection); } else { $collection = $this->_mongo->selectDB($metadata->getDB())->selectCollection($collection); } $mongoCollection = new MongoCollection($collection, $metadata, $this); $this->_documentCollections[$key] = $mongoCollection; } if (!isset($this->_documentCollections[$key])) { throw MongoDBException::documentNotMappedToCollection($className); } return $this->_documentCollections[$key]; }