MongoDB复习

目录

1.docker安装

2.mondo概念解析

3.数据库操作

4.基本数据类型

5. 适合使用场景

6.对集合操作

7.常用操作


1.docker安装

docker pull mongo:latest

docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo

docker exec -it mymongo /bin/bash

mongo

2.mondo概念解析

3.数据库操作

特点:

1.键值对有序

2.文档的值不仅可以在双引号里面的字符,还可以是其他集中数据类型

3.MongoDb区分类型和大小写

4.MongoDB的文档不能有重复的建

5.文档的建是字符串,除了少数例外情况,可以使用任意UTF-8字符

6.健不能包含\0(空字符)、\0表示健的结束

7..和$有特殊意思,只有再特殊环境下才可以使用

8.以_开头的键是保留的(非杨哥要求)

db.help()查看命令提示
user test切换/创建数据库
show dbs查询所有数据库
db.getMongo()查看当前db版本
db.dropDatabase()删除当前数据库
db,getName()查看当前使用数据库
db.stats()查看当前db状态
db.version();查看当前db版本

4.基本数据类型

RDBMS(关系型数据库)和MongoDB特点区别

5. 适合使用场景

5.1优点

1.对数据库高并发的读写

2,对海量数据的高效率存储和访问

3.对数据库的高扩展和高可用

5.2缺点

1.数据库事务一致性的需求

2.数据的写实性和读取实时性需求

3.对复杂SQL,特变多表关联查询的需求

6.对集合操作

1.db.crerateCollection("名字")                           创建集合(创建表)
2.db.getCollection("user")                                  得到指定名称的集合(table)

7.常用操作

保存

db.表.save({key:value,key:value})                                不需要主键id

find查找

db.表.find()                                                                    查询集合全部内容

db.表.find({key:value})                                                   条件查询 

例子:db.User.find({age:20}, {'name':1, 'age':1})       select name, age from User where age = 20

db.表.find({}).sort({key:1或-1})                                        使用1和-1来指定排序方式

举例:db.User.find().sort({age:1})                                 select * from User skip 2 limit 3

db.表.find().skip(1).limit(3)                                           分页查找 select * from dict limit 1,3;

db.表.find({age:{$in:[11,1,23]}})          mysql中in查找 select * from 表 where age in (数据1,数据2)

db.表.find(age:{$gt:20}).count                                      select count(*) from 表where age >20

db.表.find($or:[{age:20},{age:30}])                   查询结果值为20或30select * from 表 where                                                                                                 age=20or age=30

Update更新

dp.表.update({name:'lucy'},{$set:{age:100}})          update 表 set age=100 where name="lucy“

Update()有几个参数需要注意。

db.collection.update(criteria, objNew, upsert, mult)

criteria:需要更新的条件表达式

objNew:更新表达式

upsert:FI标记录不存在,是否插入新文档。

multi:是否更新多个文档。

Reomve删除

db.表.remove(id)                                             移除对应id

db.表.remove({})                                             移除所有

aggregate聚合

db.article.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

类似sql中select by_user, count(*) from article group by by_user

索引

db.表.createIndex({"name":1}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值