MongoDb的基本语法学习二

2023-05-30 00:00:00 索引 字段 文档 操作 删除

学习主题:MongoDb

  1. Mongodb的更新方式有?

3种: 1.update函数更新 2.使用更新操作符 3.使用save()函数更新

  1. Mongodb的update更新?

db.集合名.updata({查询条件},{更新内容},{更新参数(可选)})

  1. Mongodb的更新操作符有哪些 都是什么意思?

$set:用来指定一个键并更新键值,若键不存在并创建。

$inc:对文档某个数字型(只能为满足要求的数字)的键进行增减的操作

$unset 操作符:主要是用来删除键

$push 操作符:向文档的某个数组类型的键添加一个数组元素,不过滤重复的数据。添 加时键存在,要求键值类型必须是数组;键不存在,则创建数组类型的键

$pop 操作符:删除数据元素 1 表示从数组的尾部删除 -1 表示从数组的头部删除元素

$pull 操作符:从数组中删除满足条件的元素

$pullAll 操作符:从数组中删除满足条件的多个元素

$rename 操作符:对键进行重新命名

  1. Mongodb的save()更新?

save() 方法通过传入的文档来替换已有文档。 语法格式:save({文档}) 实现的是覆盖

  1. Mongodb删除文档的三种方式?

remove()函数:可删除集合中的指定文档,以及符合所有满足条件的。需要执行 db.repairDatabase() 来回收 磁盘空间

deleteOne()函数是官方推荐删除文档的方法。该方法只删除满足条件的条文档。

deleteMany 函数是官方推荐的删除方法。该方法删除满足条件的所有数据。

  1. Mongodb如何实对文档的查询,请举例说明?

find():

查询 title 为 DataBase 的文档并格式化显示

db.dev.find({title:"DataBase"}).pretty()

findOne():只返回满足条件的条数据。如果未做投影操作该方法则自带格式化功能。

通过//与^ $实现模糊查询:

查询文档中 title 的值含有 a 的内容 db.dev.find({title:/a/})

  1. Mongodb中的投影操作指的是?

在 find 函数中我们可以指定投影键,即只显示我们想要显示的键

  1. 条件运算符有哪些 分别什么意思?

$gt:大于操作符

$lt:小于操作符

$gte :大于或等于操作符

$lte :小于或等于操作符

$eq :等于操作符

$ne :不等操作符

$and :表示多条件间的并且关系

$or :表示多条件间的或者关系

8.1 and和or如何联合使用?

db.dev.find({$or:[{$and:[{title:{$eq:”test05”}},{size:500}]},{size:{$lt:400}}]})

  1. 每页显示5条查看第5页的数据如何实现?

db.dev.find({},{title:1,_id:0}).skip(20).limit(5)

  1. 如何实现排序,两个条件如何排序 如年龄一致按照分数排序?

使用 sort() 函数对查询到的文档进行排序,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于 降序排列。

  1. 如何创建索引?

db.COLLECTION_NAME.createIndex({创建索引的键:排序规则,......},{创建索 引的参数(可选参数)})

在创建索引时,需要使用具有 dbAdmin 或者 dbAdminAnyDatabase 角色的用户。 1 按照升序规则创建索引,-1 按照降序规则创建索引。



  1. 如何查看索引?

通过 getIndexes()或者 getIndexSpecs()函数查看集合中的所有索引信息

语法格式:db.COLLECTION_NAME.getIndexse()

语法格式:db.COLLECTION_NAME.getIndexSpecs()

  1. 删除索引有几种方式,分别举例说明?

db.COLLECTION_NAME.dropIndex("索引名称") 删除指定索引

db.COLLECTION_NAME.dropIndexes() 删除集合中的全部索引,_id 键的索引除

  1. 索引类型有哪些,有何作用?

单字段索引:单字段索引是指在索引中只包含了一个键。查询时,可加速对该字段的各种查询请 求,是常见的索引形式

复合索引:单字段索引的升级版本,它针对多个字段联合创建索引,先按个 字段排序,个字段相同的文档按第二个字段排序,依次类推。

交叉索引:就是为一个集合的多个字段分别建立索引,在查询的时候通过多个字段作 为查询条件,这种情况称为交叉索引

多 key 索引:当索引的字段为数组时,创建出的索引称为多 key 索引,多 key 索引会为数组的每个元 素建立一条索引。

索引:会保证索引对应的键不会出现相同的值,比如_id 索引就是索引

部分索引:是只针对符合某个特定条件的文档建立索引,3.2 版本才支持该特性

稀疏索引:仅包含具有索引字段的文档的条目,即使索引字段包含空值也是如此。索引会 跳过缺少索引字段的任何文档

覆盖索引:1. 所有的查询字段是索引的一部分 2. 所有的查询返回字段在同一个索引中

  1. 使用索引需要注意什么?

1、建立合适的索引

2、复合索引的字段排列顺序,匹配条件应该放在范围条件之前

3、查询时尽可能仅查询出索引字段

4、对现有的数据大表建立索引的时候,采用后台运行方式

  1. 索引限制指的是?

额外开销 内存使用 查询限制 大范围

相关文章