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})

相关推荐
爱上语文1 小时前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
lifallen1 小时前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
Brookty2 小时前
【MySQL】JDBC编程
java·数据库·后端·学习·mysql·jdbc
先做个垃圾出来………3 小时前
SQL的底层逻辑解析
数据库·sql
码不停蹄的玄黓3 小时前
深入拆解MySQL InnoDB可重复读(RR)隔离级别:MVCC+临键锁如何「锁」住一致性?
数据库·mysql·可重复读
paopaokaka_luck3 小时前
基于SpringBoot+Vue的酒类仓储管理系统
数据库·vue.js·spring boot·后端·小程序
薛晓刚4 小时前
哪个领域数据库最难替换?
数据库
芷栀夏5 小时前
基于Anything LLM的本地知识库系统远程访问实现路径
数据库·人工智能
软件2055 小时前
【redis使用场景——缓存——数据淘汰策略】
数据库·redis·缓存
ChinaRainbowSea5 小时前
9-2 MySQL 分析查询语句:EXPLAIN(详细说明)
java·数据库·后端·sql·mysql