首页 > 数据库 >MongoDb索引

MongoDb索引

时间:2022-12-08 17:00:27浏览次数:45  
标签:ensureIndex field MongoDb db collection 索引 user

Mongo 索引

语法:db.collection.ensureIndex({filed:1});

注:1.默认是曾序索引

        2.默认索引是用btree组织

说明:1代表asc升序索引 -1 降序

子文档创建索引:

db.collection.ensureIndex({'fleld.subfiled':1});

说明: 为collection中文档的filed域下的subfiled域建索引

例: db.user.insert({userid:1,email:'[email protected]',intro:{height:175,age:24}}

      db.user.ensoueIndex({'intro.height':1,'intro.age':1});

说明:此例为user表下的intro字段中的height,age字段建索引

多列创建索引:

db.collection.ensureIndex({field:1/-1},{unique:true});

说明: 1:field列上设置唯一索引 2:也可以针对"多列"设置唯一索引

例: db.user.ensureIndex({userid:1},{unique:true});

     db.user.ensureIndex({a:1,b:1},{unique:true});

稀疏索引创建

db.collection.ensureIndex({field:1/-1},{sparse:true});

说明:稀疏索引是指--只针对含有field列的document建索引 而不指定此项,则不含field列的文档,把field的值理解为null,再建索引

例: db.user.ensureIndex({school:1},{sparse:true});

      db.user.find({school:null});

哈希索引创建

 db.collection.ensureIndex({field:'hashed'});

说明: 1. 可以单个字段或子文本字段上建立hash索引

         2. 不可以针对"多个列"建立hash索引 例: db.collection.ensureIndex('intro.height':'hashed');

查看已有索引

db.collection.getIndexes();

删除指定索引:

db.collections.dropIndex({filed:1/-1/'hashed'});

例: db.user.dropIndex({'intro.height':'hashed'});

删除所有索引:

db.collection.dropIndexes();

注:_id列的索引不会被删除

重建索引

db.collection.reIndex()

作用: 重建collection中的所有索引,包括_id 意义: 减少索引文件碎片

例: db.user.reIndex()

标签:ensureIndex,field,MongoDb,db,collection,索引,user
From: https://www.cnblogs.com/first131/p/16966580.html

相关文章

  • mysql 表增加索引
    1.PRIMARYKEY(主键索引)mysql>ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)2.UNIQUE(唯一索引)mysql>ALTERTABLE`table_name`ADD......
  • How to fix MongoDB warnings All In One
    HowtofixMongoDBwarningsAllInOnewarnings$➜api-mastergit:(api)✗yarnfinalyarnrunv1.22.19$nodemonfinal/index.js[nodemon]1.18.7[nodemon]......
  • 分布式搜索引擎
    DSL查询文档elasticsearch的查询依然是基于JSON风格的DSL来实现的。1.DSL查询分类查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(fulltext)查询:利用分......
  • MongoDB数据库的基础特性
    MongoDB是全球领先的NoSQL数据库,是一个可扩展、开源、表结构自由,用C++语言编写且面向文档的高性能分布式数据库。 MongoDB在持续演进中,不断优化自己的特色功能,保证了数据......
  • es对日志数据进行索引生命周期管理
    前言在采用ELK分布式日志采集平台的时候,一般都会采用ES来存储采集的日志信息。日志信息一般都是持续增长的,是典型的时序数据。如果不对采集的日志数据做生命周期管理,很容易......
  • fastapi websocket mongodb swagger-ui离线
    E:\song\agv_fastapi_socket_v3\app.pyimportjson#fastapifromfastapiimportFastAPI,WebSocket,Request,WebSocketDisconnectfromfastapi.responsesimportR......
  • ES的索引库操作
    索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。1.mapping映射属性mapping是对索引库中文档的约束,常见的mapping属性......
  • MongoDB海量数据分页查询优化
    MongoDB海量数据分页查询优化一、背景大量数据需从Mongo拿出来,一次性拿出来不科学,传统分页效率低下二、传统方案就是最常规的方案,假设我们需要对文章articles这个表......
  • springboot2 搭建日志收集系统存入mongodb + redis+mq+线程池+xxljobs
    我们看到了高效批量插入mongodb速度还不错,那么我们的系统日志收集怎么做呢。当然当前文件日志收集效果也不错,比如前面博文写的elkf搭建日志收集系统。但我们系统中总是有......
  • springboot2 mongodb 高效批量入库--环境搭建
    当今使用微服务越来越多,每个服务都需要记录日志,那么记录到mysql中已完全不合适了。那么就记录到mongo中吧。想要速度快,那么一定要使用批量保存,做过尝试入库10万数据,逐条插......