专栏首页十月梦想mongodb之索引index

mongodb之索引index

数据库中,根据一个字段的值,来寻找一个文档,是很常见的操作。比如根据学号来找一个学生。

这个学号,是唯一的,只要有学号,就能唯一确认一个学生的文档。学号这个属性,就非常适合建立索引,这样一来,查找学生就变得简单了。

这个语句,能够查看检索的过程:

1           db.student.find({"name":"user888"});

学生的姓名是唯一的,为了快速的进行检索,所以就把name属性建立成为“索引”。

1           db.student.createIndex({"name":1});

这样,今后通过name寻找student文档的时候,速度非常快。因为能够快速的从索引表中,找到这个文档。

缺点就是插入每条数据的时候,时间变慢了,效率低了。但是换回来的就是寻找的速度快了。

索引这个属性,所有的文档都不能相同:

1           db.members.createIndex( {   "user_id": 1 }, { unique: true }   );


nodejs如何创建唯一和非唯一的索引呢

本次采用箭头函数创建

创建唯一索引

//初始化一个索引
//ES6箭头函数初始化一个创建索引
let init=()=>{
    _connectDB((err,client)=>{
        if(err){
            console.log(err)
            return;
        }
        let db=client.db(client.s.options.dbName);
        db.collection('user').createIndex({"username":1},{unique:true},(err,result)=>{
            if(err){
                console.log(err);
                return;
            }
            console.log("索引创建完毕!")
        })
    })
}
init()

创建非唯一索引

//初始化一个索引
//ES6箭头函数初始化一个创建索引
let init=()=>{
    _connectDB((err,client)=>{
        if(err){
            console.log(err)
            return;
        }
        let db=client.db(client.s.options.dbName);
        db.collection('user').createIndex({"username":1},null,(err,result)=>{
            if(err){
                console.log(err);
                return;
            }
            console.log("索引创建完毕!")
        })
    })
}
init()

    可以简单看出{unique:true}表明创建唯一索引,创建非唯一索引时候将这个替换为null即可!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • nodejs+express实现用户登录,注册以及退出操作

    先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

    十月梦想
  • 函数创建.作用域,自调用

    ps:在函数外声明的变量作用域为全局变量,任何地方都可以使用             函数内部通过var声明的变量是局部变量,内部没有通过var创建的变量是全局...

    十月梦想
  • nodejs连接MongoDB插入数据

    昨天介绍了一下MongoDB在shell下的正删改查,今天来讲一下在nodejs中如何连接数据库以及数据的插入!

    十月梦想
  • ent orm笔记1---快速尝鲜

    前几天看到消息Facebook孵化的ORM ent转为正式项目,出去好奇,简单体验了一下,使用上自己感觉比GORM好用,于是打算把官方的文档进行整理,也算是学习...

    coders
  • go 的入门之路 Socket 编程

    服务端监听本地IP(127.0.0.1)7777端口。当有客户端连接时,获得一个conn 对象,coon 对象是 interface Conn的实现者,

    地球流浪猫
  • 《外卖骑手,困在系统里》:一场事先张扬的口诛笔伐

    早在那篇万字文章发布之前,其实有关外卖骑手生存状态的话题早就已经开始酝酿,只不过那些酝酿仅仅只是星星之火,并未形成燎原之势而已。

    孟永辉
  • 到家O2O靠外卖,外卖则要靠物流

    在中国有两个O2O领域诞生了10亿美元级创业公司,出行和外卖。一个是传输用户去获取服务,一个是把外面的服务传送到家里,恰恰代表了最典型的两种O2O方式。出行领域...

    罗超频道
  • Lucene 全文检索

    全文检索就是先分词创建索引,再执行搜索的过程。分词就是将一段文字分成一个个单词。全文检索就将一段文字分成一个个单词去查询数据

    Carlos Ouyang
  • DAY 75:阅读Configuration Options

    我们正带领大家开始阅读英文的《CUDA C Programming Guide》,今天是第75天,我们正在讲解CUDA 动态并行,希望在接下来的25天里,您可以...

    GPUS Lady
  • 来安装一个酷炫的 VS Code 主题更好的刷题

    最近一直在 VSCode 上刷 LeetCode 题目,写久了感觉界面有点沉闷,决定找一个酷炫的主题来醒目一下。

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券