php mongodb execute,PHP: MongoDB\Driver\Manager::executeQuery - Manual

解阳荣
2023-12-01

$filter = [];

if (!empty($mail_brand)) {

$filter['mx.brand_id'] = intval($mail_brand);

}

if (!empty($contacttool_brand)) {

$filter['contacttool.brand_id'] = intval($contacttool_brand);

}

if ($mx_switch_title == 20 || empty($province)) {

$filter["wwwtitle"] = ['$ne' => null];

}

//网站标题

if (!empty($wwwtitle)) {

$filter['wwwtitle'] = new \MongoDB\BSON\Regex(".*{$wwwtitle}.*", '');

}

//只带mx的查询

if ($mx_on_switch == 20 || empty($province)) {

$filter["mx"] = ['$exists' => true];

}

//mx模糊查询

if (!empty($mx_vague_check)) {

$filter["mx.mx"] = new \MongoDB\BSON\Regex(".*{$mx_vague_check}.*", '');

}

//如果没有传递省份

if (empty($province)) {

$province = "shandong";

}

try {

$options_base = ['connectTimeoutMS' => 500000, 'socketTimeoutMS' => 500000];

$manager = new \MongoDB\Driver\Manager(C('mongodb_auth_url'), $options_base);

//            $readPreference = $manager->getReadPreference();

//            $server = $manager->selectServer($readPreference);

$coll = C('default_db') . '.' . $province;

$options = [

"skip" => $page,

"limit" => $rows,

'projection' => ['createdate' => 0,

'expiresdate' => 0,

'registrant_city' => 0,

'registrant_street' => 0,

'registrant_state' => 0,

'updatedate' => 0,

'whoisserver_id' => 0,

'registrar_name_id' => 0,

'id' => 0,

],

];

//查询记录总的数量

$commands = [

'count' => $province,

'query' => $filter

];

$command = new \MongoDB\Driver\Command($commands);

$cursor = $manager->executeCommand('mxmanage', $command);

$info = $cursor->toArray();

$count = $info[0]->n;

$query = new \MongoDB\Driver\Query($filter, $options);

$rows = $manager->executeQuery($coll, $query);

$info = [];

foreach ($rows as $document) {

$doc = (array)$document;

$doc['_id'] = (string)$doc['_id'];

$doc['mail_brand_name'] = $doc['mx']->brand_name;

$doc['mail_mx'] = $doc['mx']->mx ?: '';

$doc['contacttool_brand_name'] = $doc['contacttool']->brand_name;

$doc['mx_changetime'] = !$doc['mx_changetime'] ? '' : date('Y-m-d H:i', $doc['mx_changetime']);

$doc['contacttool_changetime'] = !$doc['contacttool_changetime'] ? '' : date('Y-m-d H:i', $doc['contacttool_changetime']);

unset($doc['mx']);

unset($doc['contacttool']);

$info[] = $doc;

}

} catch (\MongoDB\Driver\Exception $e) {

echo $e->getMessage(), "\n";

exit;

}

 类似资料: