public function runMongoCommand($cmd = [], $runOnMaster = true, $returnCursor = false)
{
Cml::$debug && $this->debugLogSql('Command', '', $cmd);
$this->reset();
$db = $runOnMaster ? $this->getMaster()->selectServer(new ReadPreference(ReadPreference::RP_PRIMARY_PREFERRED)) : $this->getSlave()->selectServer(new ReadPreference(ReadPreference::RP_SECONDARY_PREFERRED));
$cursor = $db->executeCommand($this->getDbName(), new Command($cmd));
if ($returnCursor) {
return $cursor;
} else {
$cursor->setTypeMap(['root' => 'array', 'document' => 'array']);
$result = [];
foreach ($cursor as $collection) {
$result[] = $collection;
}
return $result;
}
}