学习主题:MongoDb

学习目标:

  1. 掌握mongodb文档的更新
  2. 掌握mongodb文档的删除
  3. 掌握mongodb文档的查找
  4. 掌握mongodb文档的条件操作符
  5. 掌握mongodb中的索引操作
  6. Mongodb的更新方式
  7. Update()函数更新
  8. Save()函数更新

Mongodb的update更新?

Update用于更新已存在的文档(只更新更新内容中数据,文档数据易丢失)

语法格式:db.COLLECTION_NAME.update({查询条件},{更新内容},{更新参数(可选)})

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

$set (指定一个键,并更新键值,若不存在则创建)

db.dev.update({title:'语文小组'},{$set:{title:'物理小组'}})

使用multi参数实现批量更新操作

db.dev.update({title:'dev'},{$set:{size:'500'}},{multi:true})

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

$unset 删除键

$push (数组类型的键)

db.dev.update({title:'dev'},{$push:{tags:'JAVA 大数据 AI'}})

$pop:(删除数据元素)

db.dev.update({title:'abc'},{$pop:{tags:1}}) //1表示从尾删

db.dev.update({title:'abc'},{$pop:{tags:-1}} //-1表示从头删

$pull 从数组中删除满足条件的元素

db.dev.update({title:'abc'},{$pull:{tags:'34'}})

$pullAll 从数据中删除满足条件的多个元素

$rename 对键重新命名

Mongodb的save()更新?

Save()方法通过传入的文档来替换已有文档

语法格式:save({文档})

例如:修改title并删除tag数组

db.dev.save({"_id" : ObjectId("5dbd292c503ed06c738dc15b"),title:'def'})

Mongodb删除文档的三种方式?

根据主键删除文档

db.dev.remove({"_id" : ObjectId("5dbd292c503ed06c738dc15b")})

如果使用的条件在集合中可以匹配多条数据,那么remove函数会删除所以满足条件的数据

db.dev.remove({title:"dev"},1)

Db.repairDatabase()回收磁盘空间(需要管理员账户)

DeleteOne()函数删除一条文档

DeleteMany()函数删除多条文档

删除集合中的所有文档

Remove({})

deleteMany({})

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

使用find()函数查询文档

Find({查询条件},{指定投影的键})

使用pretty()函数格式化显示

FindOne({查询条件},{指定投影的键}) 自带格式化显示

db.dev.find({title:/a/}) //查询标题含有a内容

db.dev.find({title:/^a/}) //查询以a开头

db.dev.find({title:/a$/})//查询以a结尾

Mongodb中的投影操作指的是?

投影键显示该列查询的结果

语法格式为:find({查询条件},{投影键名:1(显示该列)|0(不显示该列)})

db.dev.find({title:"dev"},{title:1})

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

$gt 大于

db.dev.find({size:{$gt:300}})

$lt 小于

db.dev.find({size:{$lt:300}})

$gte 大于等于

$lte 小于等于

$eq 等于

$ne 不等于

$and 并且

db.dev.find({$and:[{size:{$gt:100}},{size:{$lt:400}}]})

$or 或者

db.dev.find({$or:[{title:{$eq:'test2'}},{size:{$gt:300}}]})

$type 类型检索数据

db.dev.find({title:{$type:'number'}})

and和or如何联合使用?

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

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

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

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

db.dev.find({size:{$type:'number'}},{title:1,size:1,_id:0}).sort({size:1})

如何创建索引?

db.dec.createIndex({title:1},{background:true})

如何查看索引?

db.dev.getIndexes()

db.dev.getIndexSpecs()

db.dev.getIndexKeys()

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

删除全部索引

db.dev.dropIndexes()

删除指定索引

db.dev.dropIndex(‘title_1’)

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

单字段索引 在索引中只包含一个键,查询时,可加速对该字段的各种查询请求

交叉索引 一个集合的多个字段分别建立索引,在查询的时候通过多个字段作为查询条件。

复合索引 针对多个字段联合创建索引,满足多字段组合查询,也满足匹配符合索引前缀的查询

多key索引 多key索引会为数组的每个元素建立一条索引

文本索引

部分索引

db.dev.createIndex({size:1},{partialFilterExpression:{size:{$gt:300}}})

使用索引需要注意什么?

创建索引需要在管理员admin数据库下进行操作,不能有重复字段,出现重复字段则不能创建就会报错。

索引额外属性

db.dev.createIndex({title:1},{background:true,unique:true})

索引限制指的是?

额外开销:每个索引占据一定的存储空间,在进行插入,更新和删除操作时也需要对索引进行操作。所以,如果你很少对集合进行读取操作,建议不使用索引

内存(RAM)使用 由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。

如果索引的大小大于内存的限制,MongoDB会删除一些索引,这将导致性能下降

查询限制

索引不能被以下的查询使用:

正则表达式及非操作符,如 $nin, $not, 等。

算术运算符,如 $mod, 等。

$where 子句

所以,检测你的语句是否使用索引是一个好的习惯,可以用explain来查看。

索引键限制

插入文档超过索引键限制

如果文档的索引字段值超过了索引键的限制,MongoDB不会将任何文档转换成索引的集合。与mongorestore和mongoimport工具类似。

最大范围

集合中索引不能超过64个

索引名的长度不能超过128个字符

一个复合索引最多可以有31个字段

mongodb 输出数组字段_MongoDb文档操作、索引操作相关推荐

  1. mongodb 输出数组字段_三分钟 mongodb 开发快速上手

    三分钟 mongodb 开发快速上手 小熊昨天晚上做了一个非常真实的噩梦,有读者朋友催我"怎么又没有发文!让我们等的好辛苦",今天一睁开眼眼看后台留言,特么,居然是真的! 我bil ...

  2. mongodb 输出数组字段_JMeter之Groovy对MongoDB操作

    背景 使用Jmeter做接口测试时需要初始数据,需要连接数据库,然而我们的后端使用的是MongoDB. 操作步骤 2.1 导入将连接MongoDB 所涉及的jar包导入jmeter的扩展lib1)扩展 ...

  3. sharepoint当流程流转到某个节点对文档进行水印操作

    sharepoint在流程中给文档库中的word或者pdf添加水印. 断断续续的搞了很久.总的解决方案如下: 在流程中,当运行到某步的时候,通过自定义代码调用后台方法,进行相关操作. 针对word的水 ...

  4. tensorflow 读取cifar_对tensorflow中cifar-10文档的Read操作详解

    前言 在tensorflow的官方文档中得卷积神经网络一章,有一个使用cifar-10图片数据集的实验,搭建卷积神经网络倒不难,但是那个cifar10_input文件着实让我费了一番心思.配合着官方文 ...

  5. Word格式处理控件Aspose.Words for .NET教程——使用DocumentBuilder将字段插入文档

    Aspose.Words for .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...

  6. python连接mysql输出数据库结构docx文档

    python连接mysql输出数据库结构docx文档-Python文档类资源-CSDN下载

  7. MongoDB查询集合中的文档

    MongoDB查询集合中的文档 参考资料:http://blog.csdn.net/qq_36040184/article/details/54355085 测试: 集合中插入数据 > db.c ...

  8. PDF转TXT文档怎么进行操作

    PDF文件转TXT文档怎么进行操作,我们在工作中会碰到PDF文件,在某种条件下我们就会将PDF文件转换成TXT文档,所以PDF转TXT文档的操作我们也是需要学会的,下面就是下边为大家介绍的PDF转TX ...

  9. 第六讲:BBdoc软件版本升级与文档内容索引更新操作

    第六讲:BBdoc软件版本升级与文档内容索引更新操作

最新文章

  1. 比赛杀器LightGBM常用操作总结!
  2. config kubectl_使用kubectl管理k8s集群(三十)
  3. 研究生的早期科研之路
  4. 最长递增子序列问题合集
  5. 数字证书原理简单说明
  6. 【NLP】谷歌、伯克利联合研究:为5种大型NLP模型,彻底算算这笔账
  7. 开源 | 如何实现一个iOS AOP框架?
  8. ASP.NET页面事件详解
  9. 如何优雅处理 async await 错误——解读小而美的 await-to-js 库
  10. 【cocos2d-x从c++到js】08:JS脚本语言的优势与一些问题
  11. dubbo 与 zookeeper 的关系
  12. 使用ARGV在命令行里接收参数
  13. 好的技术文章应该让读者更自信而不是更自卑
  14. 贪心算法及几个常用的例题
  15. 腾达ap设置说明_腾达路由器怎么设置AP模式?
  16. LaTeX代码: 下划线与删除线 ← 利用 ulem 宏包
  17. Web 服务器配置和管理
  18. EBP与ESP的作用
  19. 微信小程序通过code去获取微信用户的加密信息
  20. html、css做一个带搜索图标的搜索框

热门文章

  1. idea 暂存文件或idea切换分支代码不见了
  2. SpringBoot集成Shiro前后端分离使用redis做缓存
  3. 02年六代雅阁的整备质量_2020年宝安第八批更新计划:联投地产5.4万㎡“工改”项目...
  4. oracle与db2 市场占有率,oracle 与 DB2 的区别
  5. micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
  6. C/C++ _wcslwr_s 函数 – unicode 字符串大写转小写 - C语言零基础入门教程
  7. C语言 abort 函数 - C语言零基础入门教程
  8. CTF-MISC杂项题2
  9. node.js 实现udp传输_Node.js实战15:通过udp传输文件。
  10. html视频标签略缩图,JS可以截取video的标签视频缩略图吗?