美文网首页
MongoDB 索引操作(1)

MongoDB 索引操作(1)

作者: 岛上码农 | 来源:发表于2022-06-03 06:50 被阅读0次

在讲索引前先补一个小知识,即数据取样。

随机取样

可以实用$sample操作符从文档中取样,达到随机取样的效果。每次执行的效果都会不一样。

# 随机取2个元素
db.employees.aggregate({$sample: {size: 2}});

同样的,可以使用 $match操作符匹配条件再随机筛选(可以用于分层抽样)。

# 从年龄超过30的人员中随机取2个元素
db.employees.aggregate(
    {
    $match: {age: {$gt: 30}}}, 
    {$sample: {size: 2}
  }
);

查看索引

可以使用 db.collection.getIndexes()查看数据集当前索引。

db.employees.getIndexes();

返回的结果如下(注意4.4版本以下会多返回一个 ns 字段):

[ 
    { 
    "v" : 2, 
    "key" : { "_id" : 1 }, 
    "name" : "_id_" 
  } 
]

其中_id 是默认创建的唯一索引。

创建索引

创建索引使用 db.collections.createIndex({key: 1}),其中1为索引升序排列,-1为降序排列。

db.employees.createIndex({dept: 1});

再次查看索引可以看到如下结果:

[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_"
    },
    {
        "v" : 2,
        "key" : {
            "dept" : 1
        },
        "name" : "dept_1"
    }
]

也可以指定索引的名称,用于描述索引,支持中文。

db.employees.createIndex({ age: -1},  {name: '年龄降序索引'});

哈希索引

可以指定索引为哈希模式,这对于使用等式查询时更高效,但范围查询的话比较低效。对于同一个字段可以同时指定哈希和升序降序索引(实际升降序索引也可以同时创建)。

db.employees.createIndex({ age: 'hashed'},  {name: '年龄哈希索引'});

查询索引可以看到在 age 上建立了两个索引。

[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_"
    },
    {
        "v" : 2,
        "key" : {
            "dept" : 1
        },
        "name" : "dept_1"
    },
    {
        "v" : 2,
        "key" : {
            "age" : -1
        },
        "name" : "年龄降序索引"
    },
    {
        "v" : 2,
        "key" : {
            "age" : "hashed"
        },
        "name" : "年龄哈希索引"
    }
]

移除索引

移除索引可以通过两种方式进行,一是使用索引名字,而是使用字段索引类型,均使用 dropIndex 操作。

# 按索引名称删除:年龄哈希索引
db.employees.dropIndex('年龄哈希索引');
# 按字段删除:年龄的降序索引
db.employees.dropIndex({age: -1});

总结

从索引的操作来看,MongoDB 的索引相比SQL更为简单、灵活而且多样。实际过程中可以通过索引加快查询速度,后续将介绍其他索引的操作。

相关文章

  • 24.Mongodb的索引操作

    Mongodb的索引操作 学习目标 掌握 mongodb索引的创建,删除操作 掌握 mongodb查看索引的方法 ...

  • MongoDB 索引操作(1)

    在讲索引前先补一个小知识,即数据取样。 随机取样 可以实用$sample操作符从文档中取样,达到随机取样的效果。每...

  • MongoDB 索引操作(2)

    前言 上一篇介绍了 MongoDB 的索引基本操作,包括了索引查看、创建、删除,具体可以参考:MongoDB 索引...

  • mongodb基本操作

    本文主要介绍mongodb的一些基本操作,如创建、更新、查找、删除记录和创建索引。 1. 安装MongoDB 安装...

  • mongodb索引操作

    查看索引情况 db.imooc_collection.getIndexes() > show tables> db...

  • mongodb索引操作

    查看索引 创建复合索引:"0"字段升序“p”降序 删除索引

  • mongodb——内存

    sort操作内存溢出 报错 这个异常出自mongodb的sort操作。当mongodb无法从索引获取排序顺序时,会...

  • mongodb性能影响因素

    1. 索引 mongodb索引用的是 B-tree,所以 skip 操作性能不高,时间复杂度为 O(M) ,M 为...

  • day40-MongoDB、crontab

    1、MongoDB安装 2、MongoDB指令操作 3、MongoDB代码操作 crontab

  • MongoDB索引二(九)

    MongoDB索引二(九) 接上篇MongoDB索引一

网友评论

      本文标题:MongoDB 索引操作(1)

      本文链接:https://www.haomeiwen.com/subject/jdaqmrtx.html