为了账号安全,请及时绑定邮箱和手机立即绑定
  • db.createCollection('imooc_collection')

    先创建集合

    查看全部
  • MongoDB的概念

    1. 无数据结构限制(

      1.没有表结构的概念,每条记录可以有完全不同的解构 

      2.便于开发

      3.sql数据库需要事先定义表结构再使用

    2. 完全的索引支持(

      1.Redis的key-value键值索引

      2.HBASE的单索引,二级索引需要自己实现

      单键索引,多建索引,数组索引,全文索引都可以很好的实现

    3. 方便的冗余与扩展(

      1.复制集保证数据安全(一层层的主从解构,良好的数据安全性,每一份数据都分为三分,以免发生数据丢失)

      2.分片扩展数据规模(方便的规模扩展)

    4. 良好的支持(

      1.完善的文档

      2.齐全的驱动支持


    查看全部
  • (1)_id索引

    查看全部
    0 采集 收起 来源:[mongoDB] _id索引

    2018-10-18

  • 学习mongodb的重要网站

    查看全部
  • 一、索引属性

    1、创建索引时的格式:db.collection.ensureIndex({param},{param}),第2个参数便是对应的属性。

    2、比较重要的属性:

    (1)名字,name指定:

    db.collection.ensureIndex({},{name;” “})

    (2)唯一性,unique指定,利用unique可以实现若存在,则不插入,若不存在则插入。

    db.collection.ensureIndex({},{unique:true/false})

    (aSuncat:ensureIndex - 创建一个索引, insert - 插入一条数据)

    (3)稀疏性,sparse指定,不必为不存在的字段创建索引

    db.collection.ensureIndex({},{sparse:true/false})

    ①db.imooc_2.find({m:{$exists:true}})

    ②db.imooc_2.ensureIndex({m:1},{sparse:true})

    ③db.imooc_2.find(m:{$exists:false})

    如果mongoDB在选取索引时,如果发现在稀疏索引上查找不存在文档,将不会使用稀疏索引,如果强制指定的话,就会发现问题。

    ④db.imooc_2.getIndexs()

    ⑤db.imooc_2.find({m:{$exists:false}}).hint(“m_1”)

    不能在稀疏索引上查找字段不存在的记录。

    (4)是否定时删除,expireAfterSeconds指定:TTL,过期索引。


    查看全部
  • 一、索引类型

    1、_id索引

    (1)_id索引是绝大多数集合默认建立的索引。

    (2)对于每个插入的数据,mongoDB都会自动生成一条唯一的_id字段。

    2、单键索引

    (1)单键索引是最普通的索引。

    (2)与_id索引不同,单键索引不会自动创建。

    3、多键索引

    (1)多键索引与单键索引创建形式相同,区别在于字段的值。

    ①单键索引:值为一个单一的值,如字符串,数字或日期。

    ②多键索引:值具有多个记录,如数组。

    (2)use imooc:使用imooc数据库

    db.imooc_2.getIndexs():使用imooc_2数据集合

    (3)db.imooc_2.insert({x:[1,2,3,4]}),创建了一个多键索引

    4、符合索引

    (1)当我们的查询条件不只有一个时,就需要建立符合索引

    (2)db.imooc_2.ensureIndex({x:1,y:2}),创建索引

    db.imooc_2.find({x:1,y:2}),使用索引

    5、过期索引

    (1)过期索引:是在一段时间后会过期的索引

    (2)在索引过期后,相应的数据会被删除。

    (3)适合存储一些在一段时间后会失效的数据,如用户的登陆信息,存储的日志。

    (4)建立方法:db.collection.ensureIndex({time:1},{expireAfterSeconds:10}), expireAfterSeconds为过期时间

    (5)过期索引的限制:

    ①存储在过期索引字段的值必须是指定的时间类型。说明:必须是ISODate或者ISODate数组,不能使用时间戳,否则不能被自动删除。

    ②如果指定了ISODate数组,则按照最小的时间进行删除。

    ③过期索引不能是复合索引。

    ④删除时间不是精确。说明:删除过程是由后台程序每60s跑一次,而且删除也需要一些时间,所以存在误差。

    6、全文索引

    (1)全文索引:对字符串与字符串数组创建全文可搜索的索引

    (2)适用情况:{author:””,title:””,article:””}

    (3)建立方法:

    ①db.articles.ensureIndex({key:”text”})

    ②db.articles.ensureIndex({key_1:”text”,key_2:”text”})

    ③db.articles.ensureIndex({“$**”:”text”}),对集合中所有字段创建一个大的索引。

    (4)使用全文索引查询

    db.articles.find({$text:${search:”coffee”}})

    db.articles.find({$text:${search:”aa bb -cc”}}):查找包括aa或bb,但是不包含cc

    db.articles.find({$text:${search: “\”aa\” \”bb\” \”cc\””}}),查找既包含aa,又包含bb,又包含cc

    (5)mongoDB中每个集合只允许创建一个全文索引

    (6)全文索引相似度

    ①$meta操作符:{score:{$meta:”textScore”}}

    ②写在查询条件后面可以返回返回结果的相似度。

    ③与sort一起使用,可以达到很好的实用效果。

    ④db.imooc_2.find({$text:{$search:”aa bb”}},{score:{$meta:”textsScore”}}).sort({score:{$meta:”textScore”}}),根据score排序。

    (7)全文索引使用限制:

    ①每次查询,只能指定一个$text查询。

    ②$text查询不能出现在$nor查询中。

    ③查询中如果包含了$text,hint不再起作用。

    ④mongoDB全文索引还不支持中文。(aSuncat:2016年的v3.2.6是已经支持中文了的)

    7、地理位置索引


    查看全部
    0 采集 收起 来源:[mongoDB] _id索引

    2018-10-09

  • 一、很多情况下,系统性能下降,都是与mongoDB的索引相关的。

    查看全部
    0 采集 收起 来源:mongoDB索引简介

    2018-10-09

  • 索引种类的

    查看全部
    0 采集 收起 来源:[mongoDB] _id索引

    2018-10-08

  • 更新不存在数据update({y:100},{y:999},true)

    查看全部
  • 部分更新$set

    查看全部
  • mongo更新多条数据

    查看全部
  • 一、查询

    1、数据量较小时,不使用索引查询是较快的,但是如果数据量较大,查询就会非常缓慢。

    2、db.imooc_collection.getIndexes()

    3、db.imooc_collection.ensureIndex({x:1}), (1)ensureIndex创建索引,参数是json文档,

    (2)key的值不再代表值,而是代表方向。

    x:1代表正向排序,x:-1代表逆向排序。

    (3)创建索引要消耗很长的时间,如果系统负载较重,且有很多已经存在的文档,则不能直接使用ensureIndex这个命令,需要在数据库创建之前就创建索引。

    (4)创建索引会对写入有一定的影响。

    查看全部
  • 一、删除

    1、为防止误操作,删除操作不允许不传参数。

    2、db.imooc_collection.remove({c:2});

    查看全部
  • 一、更新多条数据

    1、db.imooc_collection.insert({c:1})

    2、db.imooc_collection.insert({c:1})

    3、db.imooc_collection.insert({c:1})   这样c:1的数据就有3条

    4、db.imooc_collection.update({c:1},{c:2}), 这样只能把一条c:1的数据更新成c:2,因为mongoDB为了防止误操作,所以只更新了一条数据。

    5、db.imooc_collection.update({c:1},{$set:{c:2}},false,true),这样能把3条c:1的数据全都更新成c:2

    (1)第3个参数false:表示如果数据不存在,则不需要重新创建。

    (2)第4个参数true:表示批量更新,如果是false,则表示只更新一条。

    查看全部
  • 一、更新不存在的数据

    1、db.imooc_collection.update({y:100},{y:999},true)

    true表示,如果查找的数据不存在,就自动插入一条。

    查看全部

举报

0/150
提交
取消
课程须知
1、对数据库的概念有比较清晰的认识。 2、了解一些简单的shell操作。
老师告诉你能学到什么?
1、了解mongoDB的特性 2、掌握mongoDB的基本操作 3、了解mongoDB在业务层的使用,并学会使用mongoDB来进行应用开发

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!