mongoDB

mongoDB是什么?

关系是数据库对应多个集合

- 集合对应多个文档对象
- 在mongo中不论是db还是集合,你都无需去创建他
- 直接就当他已经存在,直接Use来使用
  + use db名称;
    * 接着会被切换到该db中
    * `db.要创建的集合名称.save({})`;这样集合就被创建了


1:启动服务器

- `mongod --dbpath "D:/mongodb/db"` // 目录一定要存在自己创建随便名称‘
  + 尽量设置在非系统盘 `C盘生成目录是需要权限的`
- 如果看到`waiting for connections on port 27017`说明服务已经启动


客户端连接服务器**另开一个命令行**

- `mongo` 默认连接的是test数据库


查询有哪些数据库  

- 查询数据库:`show dbs;`
- 切换数据库: `use 数据库名;`


查询当前db下有哪些集合

- `show collections;`


查询数据:

- `db.集合名.find();`  //查询出来的是文档对象 document
- `db.users.find();`


添加数据:

- `db.集合名.save(对象)` //mongo默认会给我们加入_id作为该文档对象的唯一标识
- `db.users.save({contry:'中国',name:'小明',score:77});`


删除数据:

- `db.集合名.remove(条件对象);`//条件匹配就会被删除
- `db.users.remove({name:'小明'});`
- 如果给定一个空对像,会匹配全部


更新数据:

- `db.集合名.update({匹配条件对象},{$set:{修改后的对象}});`
- `db.users.update({name:'小明'},{$set:{contry:'印度'}});;`

条件查询

练习:
  查询姓名为小明的学生
        db.users.find({name:'小明'});;
 查询英语成绩大于90分的同学
        db.users.find({score:{$gt:90}}); //查找成绩大于90分$gt
        //$lt小于
查询数学成绩不等于88的同学
        db.users.find({score:{$ne:88}});
 查询总分大于200分的所有同学
        db.users.find({score:{$gt:200}});

 分页

  • db.users.find().skip(3).limit(3);

  • db.集合名称.find().跳到3.显示3条 ​ ​ ​ ​ + limit 0,3

 排序

* `db.users.find().sort({key:排序方式});`
* `db.users.find().sort({'score':1});` //正数代表升序,负数代表降序

 模糊匹配

* `db.users.find({name:{$regex:'小'}});`
* `db.users.find({name:{$regex:'明'}});`

聚合函数

* 需要求当前集合的记录数:
* `db.users.find().count();`
* 求最大值
  -求整个集合的总成绩
  ​    + db.集合名.聚合({ 组的划分规则{_id:'1',显示内容:{$sum:'$score'}} })
  - 求所有人的平均分
    + `db.users.aggregate({$group:{_id:'1',sumscore:{$avg:'$score' } }});`
  - 求按国家分组,求所有国家的总分
    + `db.users.aggregate({$group:{_id:'$contry',sumScore:{$sum:'$score'}}});`


添加基础数据:
db.users.save({contry:'中国',name:'小明',score:77});
db.users.save({contry:'中国',name:'小红',score:88});
db.users.save({contry:'中国',name:'小张',score:99});
db.users.save({contry:'美国',name:'jack',score:45});
db.users.save({contry:'美国',name:'rose',score:67});
db.users.save({contry:'美国',name:'mick',score:89});


解决32位异常

mongod --dbpath="路径" --journal --storageEngine=mmapv1

mySQL与 mongoDB 区别

1:mysql 是关系型数据库  mongoDB 是非关系型

2: mysql 需要自己创建连接池 操作数据库 ,mongoDB 内部自带连接池

3: 概念区分:

​    myql 数据库/表/字段  

​    mongoDB  数据库/集合/文档最对象

4:操作数据:

-  mysql  必须先创建数据库—>创建表—> 字段——>字段值的数据类型    这些必须在操作数据之前准备好 中间 字段有改变时候,必须要通过表来改变。不能通过操作数据的sql语句来修改
-  mongoDB 创建数据库 ,集合以及文档对象,都可以通过操作数据的命令来创建或者修改。使用’命令行‘时,如果没有集合则会自动创建,有 则对集合中文档对象操作

如果想要简单了解如何使用Mysql也可以看我的另一篇文章<Mysql>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值