微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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]);
        }
    }
}

根据自己需求更改,此文章只为记录

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐