当前位置: 首页 > news >正文

MongoDB基础

MongoDB

基于分布式文件存储的数据库由C++语言编写。B是一个介于关系数据库和非关系数据库(nosql)之间的产品。

缺点:不支持事务、不能进行多表联查

MongoDB解决mysql的"三高"问题

  1. 对数据库的高并发写入需求

  2. 对海量数据高效率存储访问需求

  3. 对数据库高扩展和高应用的需求

MongoDB应用场景

  1. 社交场景(e.g:朋友圈)

  2. 社游戏场景(e.g:用户得分、装备等)

  3. 物流场景(e.g:快递位置、状态、途径等)

  4. 视频场景(e.g:直播中的点赞数和互动留言等)

mysql和MongoDB的区别

  1. mysql里是表,mongoDB里面集合

  2. mysql存储方式是表,而mongodb存储方式是jsio文件

MongoDB与MySql存储方式比较

连接MongoDB(使用默认服务器和账号登录)

 #mongo

查看MongoDB(磁盘上所有的库名)

 show dbs

创建库(使用库)

 use dbname

若使用的库不存在,它会自动创建该库。(创建集合[数据表] 后要(记录),集合才会真正创建)

查看当前使用的数据库

 db

删除库

 db.dropDatabase()

创建集合

 db.createCollection("集合名")​db.createCollection("students")

查看集合

 show collection / show tables

删除集合

 db.集合名.drop()

在集合中插入数据

 db.集合名.insert(document)

例子:

 db.student.insert({shuai:true,money:true,gf:[{stuname:'小红'},{stuname:'小紫'}]})

在集合中更新数据

MongoDB在集合中查询文档(find)

 MongoDB 查询文档使用 find() 方法。find() 方法以非结构化的方式来显示所有文档。db.collection.find(query)pretty() 方法以格式化的方式来显示所有文档,linux下有用。>db.col.find().pretty()

MongoDB的 And条件

 db.col.find({key1:value1, key2:value2})以上实例中类似于 WHERE 语句:WHERE key1=‘value1’ AND key2=‘value2

MongoDB的 Or条件

 db.col.find({$or: [{key1: value1}, {key2:value2}]})

MongoDB的 And 与 Or 一起使用

 类似常规 SQL 语句为: ‘where key1>value1 AND (key2 =value2 OR key3 = value3)’db.col.find({“key1": {$gt:value1}, $or: [{“key2": “value2"},{“key3": “value3"}]})

MongoDB范围条件

 col"集合中 “key" 大于100,小于 200 的数据> db.col.find({“key” : {$lt :200, $gt : 100}})相当于RDBMS:Select * from col where key>100 AND key<200

MongoDB的模糊查询

 查询 name 包含“小"字的文档:db.col.find({“name”:/小/})查询 name 字段以“小"字开头的文档:db.col.find({“name”:/^小/})查询 name字段以“小"字结尾的文档:db.col.find({“name”:/小$/})

MongoDB的Limit 和 Skip操作

 > db.col.find().limit(NUMBER)skip方法同样接受一个数字参数作为跳过的记录条数。> db.col.find().limit(NUMBER).skip(NUMBER)

MongoDB的统计

 在 MongoDB 中使用count() 来统计个数>db.col.count(【{key:value}】)

MongoDB的排序

 在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。>db.col.find().sort({KEY:1})

MongoDB的索引

查看索引
 db.collection.getIndexes() 
创建索引(单个索引,复合索引)
 db.collection.createIndex(keys,option)

例如 :db.col.createIndex({username:1【, key:1】})

删除索引
 db.collection.dropIndex(index) 

例如:db.col.dropIndex({username:1})

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自注意力Self-attention
  • 鼠标为什么要放在鼠标垫上才好用?/ 鼠标的工作原理
  • 排序【归并排序和计数排序】
  • 【图像去雾系列】使用暗通道先验去雾算法对图像进行去雾处理
  • 刷题记录第109天-K个一组反转链表
  • 你知道AI模型是如何学习的吗?
  • keepalived安装-集群部署
  • 【面试题】接雨水
  • WPF 数据模板DataTemplate、控件模板ControlTemplate、Style、ItemsPreseter
  • jenkins 安装以及自动构建maven项目并且运行
  • thinkphp漏洞之sql注入漏洞-builder处漏洞
  • wiota窄带通讯技术对于vu传统lora
  • [cvpr 2024 目标检测 前沿研究 热点] cpvr 2024中与目标检测主题有关的论文
  • 【无标题】第九章 从 Web 客户端指定自定义传输
  • 钢板现货:A572Gr60和SA572Gr60材质分析、A572Gr60和SA572Gr60简介
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 2017-09-12 前端日报
  • bearychat的java client
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • gf框架之分页模块(五) - 自定义分页
  • miaov-React 最佳入门
  • ucore操作系统实验笔记 - 重新理解中断
  • VUE es6技巧写法(持续更新中~~~)
  • Vue.js源码(2):初探List Rendering
  • vuex 笔记整理
  • Yii源码解读-服务定位器(Service Locator)
  • 多线程事务回滚
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 如何解决微信端直接跳WAP端
  • 新版博客前端前瞻
  • 一文看透浏览器架构
  • 因为阿里,他们成了“杭漂”
  • 国内开源镜像站点
  • 回归生活:清理微信公众号
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​虚拟化系列介绍(十)
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #define、const、typedef的差别
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • ()、[]、{}、(())、[[]]命令替换
  • (4)Elastix图像配准:3D图像
  • (C++17) optional的使用
  • (补)B+树一些思想
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (九)c52学习之旅-定时器
  • (转)程序员疫苗:代码注入
  • (转)项目管理杂谈-我所期望的新人
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ./configure,make,make install的作用(转)
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net Stream篇(六)
  • .net 生成二级域名