/**
* 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->getDocumentDB($className)->getGridFS($collection);
} else {
$collection = $this->getDocumentDB($className)->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];
}