php给mongodb添加索引
Posted ljkltt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php给mongodb添加索引相关的知识,希望对你有一定的参考价值。
<?php
/**
* mongo字段加索引
* Created by PhpStorm.
* User: Administrator
* Date: 2021/6/11
* Time: 15:02
*/
$mongoDB = \'deyibao\';//mongo数据库名
$mongoClient = new MongoClient();//mongo连接
$db = $mongoClient->selectDB($mongoDB);//选择数据库
$collectionNames = $db->getCollectionNames();//获取所有的集合名
$rule1 = \'/task_record_.*/\';//正则表达式
$rule2 = \'/turn_.+_record_.*/\';
foreach ($collectionNames as $k=>$v){
$index = $db->$v->getIndexInfo();//获取索引
if (preg_match_all($rule1,$v)){
foreach ($index as $key=>$val){
if (!strstr(\'date\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'date\' => 1],[\'background\'=>true]);
if (!strstr(\'userId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'userId\' => 1],[\'background\'=>true]);
}
}
if (preg_match_all($rule2,$v) || strstr($v,\'turn_luck_money\')){
foreach ($index as $key=>$val){
if (!strstr(\'date\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'date\' => 1],[\'background\'=>true]);
if (!strstr(\'userId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'userId\' => 1],[\'background\'=>true]);
if (!strstr(\'type\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'type\' => 1],[\'background\'=>true]);
if (!strstr(\'createTime\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'createTime\' => 1],[\'background\'=>true]);
}
}
if (strstr($v,\'turn_user_sign\') || strstr($v,\'turn_message\') || strstr($v,\'turn_group_ranklist_log\')) {
foreach ($index as $key=>$val){
if (!strstr(\'userId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'userId\' => 1],[\'background\'=>true]);
}
}
if (strstr($v,\'turn_group_ranklist\')) {
foreach ($index as $key=>$val){
if (!strstr(\'date\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'date\' => 1],[\'background\'=>true]);
if (!strstr(\'groupId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'groupId\' => 1],[\'background\'=>true]);
}
}
if (strstr($v,\'turn_contribution\')) {
foreach ($index as $key=>$val){
if (!strstr(\'userId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'userId\' => 1],[\'background\'=>true]);
if (!strstr(\'ctbUserId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'ctbUserId\' => 1],[\'background\'=>true]);
if (!strstr(\'date\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'date\' => 1],[\'background\'=>true]);
if (!strstr(\'tierNum\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'tierNum\' => 1],[\'background\'=>true]);
}
}
if (strstr($v,\'turn_exchange\')) {
foreach ($index as $key=>$val){
if (!strstr(\'date\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'date\' => 1],[\'background\'=>true]);
if (!strstr(\'configId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'configId\' => 1],[\'background\'=>true]);
if (!strstr(\'userId\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'userId\' => 1],[\'background\'=>true]);
if (!strstr(\'type\',$val[\'name\'])) $collection = $db->$v->ensureIndex([\'type\' => 1],[\'background\'=>true]);
}
}
}
根据自己需求更改,此文章只为记录
以上是关于php给mongodb添加索引的主要内容,如果未能解决你的问题,请参考以下文章