首页 > 其他分享 >mongo判断某些字段上有没有索引,进行动态创建

mongo判断某些字段上有没有索引,进行动态创建

时间:2023-08-26 16:01:42浏览次数:32  
标签:index String private 索引 字段 boolean 动态创建 indexOptions mongo

IndexOptions:
 private boolean background;
    private boolean unique;
    private String name;
    private boolean sparse;
    private Long expireAfterSeconds;
    private Integer version;
    private Bson weights;
    private String defaultLanguage;
    private String languageOverride;
    private Integer textVersion;
    private Integer sphereVersion;
    private Integer bits;
    private Double min;
    private Double max;
    private Double bucketSize;
    private Bson storageEngine;
    private Bson partialFilterExpression;
    private Collation collation;
    private Bson wildcardProjection;
    private boolean hidden;

 

        IndexOperations animals = mongoTemplate.indexOps("animals");
        List<IndexInfo> indexInfo = animals.getIndexInfo();
        for (IndexInfo index:indexInfo){
            List<IndexField> indexFields = index.getIndexFields();
            //索引名称
            String name = index.getName();
            for (IndexField indexField : indexFields) {
                //有索引的字段
                String key = indexField.getKey();
                //索引所在的字段不为空,并且与我们想要的目标字段不相等
                if(Objects.isNull(key)&&key.equals("目标字段")){
                    //在这里给目标字段设置索引 然后跳出循环即可
                    /**
                     *   IndexOptions indexOptions = new IndexOptions();
                     *                     //后台创建索引
                     *                     indexOptions.background(true);
                     *                     //唯一索引
                     * //                    indexOptions.unique(true);
                     *                     //如果为true,则索引仅引用具有指定字段的文档
                     * //                    indexOptions.sparse(true);
                     *                     mongoTemplate.createCollection("animals")
                     *                             .createIndex(Indexes.ascending("name"),
                     *                                     indexOptions);
                     */
                    break;
                }
            }
//            Optional<Document> collation = index.getCollation();

        }

 

标签:index,String,private,索引,字段,boolean,动态创建,indexOptions,mongo
From: https://www.cnblogs.com/wangbiaohistory/p/17658904.html

相关文章

  • mongodb的六种索引
    以下是一些与MongoDB索引相关的注解,用于在Java中使用SpringDataMongoDB进行数据建模和索引定义:-@TextIndexed:用于指示字段应该被全文索引。适用于对文本字段进行全文搜索的场景。-@GeoSpatialIndexed:用于指示字段应该被地理空间索引。适用于对地理位置进行查询和......
  • mongo批量更新的几种方法
    50w数据做测试看一下mongo支持批量更新的几种PAI 1.0publicUpdateResultupdateMulti(Queryquery,UpdateDefinitionupdate,Class<?>entityClass)2.0publicUpdateResultupdateMulti(Queryquery,UpdateDefinitionupdate,StringcollectionName)3.0......
  • fastadmin列表宽度变小,如何让列字段内容自动换行
    首先,正常来讲,fastadmin列宽度没有属性约束,会随着字段值的长度自动伸缩。但fastadmin可以控制列的宽度,看一下控制列宽度后的样式。{field:'filename',title:'附件名称',cellStyle:function(){return{css:{"max-width":"150px",}}}},如下图 但这样不美观,如何让字......
  • easypoi导入导出字段字典码值自动转换
    1.replace进行内容替换@Excel(name="是否有效",width=30,replace={"是_1","否_0","_null"})privateStringisEffective;Excel文件内'是否有效'这列的数据将会根据replace规则替换,例如'是'会被替换为'1',空白会被替换为null。反过来导出数据到E......
  • mysql字符串替换 replace方法替换字段中的值
    需求:字符串A是一个JSON字符串,其中的属性值可能为空吗,例如字段”result“{"处理结果":{"字段A":{"结果":""},......,{"字段X":{"结果”:""}}}需求:如果其中的结果为空则将 {"结果":""}替换为""selectreplace(result,'{"......
  • 【思考待定】备用字段到底是不是一个好的选择呢?
    1  思考刚才看见一篇文章,关于备用字段的,各有各的说法,哈哈哈:再看看大家的评论:众说纷纭哈,关于备用字段其实我们的表里也有,有ext字段是个json类型的,还有一些重要的表比如支付、订单、会员的主表都有几个备用字段。至于怎么做,能不能做,大家考虑的点都是一样的,就是受限于目前......
  • Mongodb数据库基于spring-boot-starter-data-mongodb的查询工具
    /***字段注解*/public@interfaceBuilderField{/***对应的数据库字段名称*@return*/Stringname();}importlombok.SneakyThrows;importjava.io.Serializable;importjava.lang.invoke.SerializedLambda;importjava.lang.reflec......
  • php mongodb操作类,适合mongodb2.x和mongodb3.x
    在别人基础上修改的mongodb操作类,适合mongodb2.x和mongodb3.x<?php/***Mongodb类**examples:*$mongo=newHMongodb("127.0.0.1:11223");*$mongo->selectDb("test_db");*创建索引*$mongo->ensureIndex("test_table",array(&q......
  • sql server和mysql常用字段类型对比
    都有的数据类型BIGINTCHARDATETIMEDECIMALFLOATINT,INTEGERSMALLINTTEXTTIMESTAMPTINYINTVARCHAR需要做修改的数据类型关键代码修改:......
  • phpcms后台发表文章时候添加新的字段
    在modules/content/templates/content_add.tpl.php模板中的foreach($forminfos['base'] as $field=>$info) {}外面添加新的字段,注意name为字段名,同时在数据库的v9_news_data添加新的字段和testfield一致.<th width="80">测试字段</th><td><input type='text'......