/**
* Execute a command on this database.
*
* @see DatabaseCommand::__construct() for supported options
*
* @param array|object $command Command document
* @param array $options Options for command execution
*
* @return Cursor
* @throws InvalidArgumentException
*/
public function command($command, array $options = [])
{
if (!isset($options['readPreference'])) {
$options['readPreference'] = $this->readPreference;
}
if (!isset($options['typeMap'])) {
$options['typeMap'] = $this->typeMap;
}
$operation = new DatabaseCommand($this->databaseName, $command, $options);
$server = $this->manager->selectServer($options['readPreference']);
return $operation->execute($server);
}