public function enableShardingForDbByDocumentName($documentName)
{
$dbName = $this->dm->getDocumentDatabase($documentName)->getName();
$adminDb = $this->dm->getConnection()->selectDatabase('admin');
$result = $adminDb->command(array('enableSharding' => $dbName));
// Error code is only available with MongoDB 3.2. MongoDB 3.0 only returns a message
// Thus, check code if it exists and fall back on error message
if ($result['ok'] == 1 || isset($result['code']) && $result['code'] == 23 || $result['errmsg'] == 'already enabled') {
return;
}
throw MongoDBException::failedToEnableSharding($dbName, $result['errmsg']);
}