MongoDB

mongodb

1. 关系型数据库 概念  , 常用的数据库有哪些?
2. 非关系型数据库 概念,常用数据库
3. mongodb 和  sql区别
   1. sql   是   数据库   表    行
   2. NoSql 是   数据库   集合  文档
4. bson是mongodb的数据存储格式
5. bson是json的超集

- 数据库功能是用来存储数据的。     
- 数据库分为关系系数据库和非关系型数据库(nosql)
- 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。       
- 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。

6. mongodb数据库连接地址:  mongodb://127.0.0.1:27017

准备工作

MongoDB官网地址:
https://www.mongodb.com/

MongoDB下载地址:
https://www.mongodb.com/download-center#community

对mongodb数据库的操作是通过执行命令来完成的,我的电脑里面这些命令安装在:

C:\Program Files\MongoDB\Server\4.0\bin

要执行这些命令,需要以管理员身份运行cmd。
打开开始菜单,找到命令提示符,在上面点击右键,选择以管理员身份运行。

要想执行mongodb的命令,需要cd到他的安装目录下面的bin文件夹下。

为了在dos窗口的任何目录下都能执行mongo的命令,需要先设置环境变量,因为计算机在执行命令的时候会在环境变量中找对应的命令。

-1.我的电脑上点击右键,选择属性

-2.找到并打开“高级系统配置”。
在接下来的页面中点击“高级系统配置”

-3.找到环境变量“path”,点击编辑
把自己的安装路径粘贴上去
例如C:\Program Files\MongoDB\Server\4.0\bin
然后保存。win7环境变量只有一行,在加之前要在前面加上分号隔开

创建文件夹( 4以上版本自带无需执行 )

我们之前安装的其实是数据服务器,通过数据库服务器可以建立很多个数据库,我们打算把新建的数据库放哪里呢?需要指定一个位置。

  • 1、在d盘建立一个文件夹mongodb,并且建立子目录db和log.
  • 2、在log目录下建立一个文件MongoDB.log ,后缀为.log.

d:\mongodb\db、d:\mongodb\log, 分别用来存放数据库文件和数据库日志文件.

  • 3、把mongodb文件夹的只读属性去掉。

启动MongoDB

以管理员身份运行cmd.exe,进入dos命令界面,执行下列命令

mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log”

执行后,就挂起了,需要另外开命令窗口测试是否启动成功。

启动mongodb服务
NET START MongoDB

关闭服务和删除进程
先 ctrl+c

关闭服务:net stop MongoDB

MongoDB基础使用

数据库常用命令
1. Help查看命令提示
    - help
    - db.help()
    - db.test.help()
    - db.test.find().help()
2. 创建/切换数据库
    - use music
3. 查询数据库
    - show dbs
4. 查看当前使用的数据库
    - db/db.getName()
5. 显示当前DB状态
    - db.stats()
6. 查看当前DB版本
    - db.version()
7. 查看当前DB的链接机器地址
    - db.getMongo()
8. 删除数据库
    - db.dropDatabase()
Collection集合操作
1. 创建一个集合
    - db.createCollection("collName", {size: 20, capped: true, max: 100});
    - db.collName.isCapped(); //判断集合是否为定容量
2. 得到指定名称的集合
    - db.getCollection("account");
3. 得到当前db的所有集合
    - db.getCollectionNames();
4. 显示当前db所有集合的状态
    - db.printCollectionStats();

添加、修改与删除集合数据

1. 添加

db.users.save({name: ‘zhangsan’, age: 25, sex: true});
相当于:insert into users(name, age, sex) values(‘zhangsan’, 25, true)

2. 修改 第二个参数表示修改,第三个参数表示修改的条数,false一条,true,全部修改
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
相当于:update users set name = ' changeName' where age = 25;

db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);
相当于:update users set age = age + 50 where name = 'Lisi';

db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
相当于:update users set age = age + 50, name = 'hoho'  where name = 'Lisi';
3. 删除
db.users.remove({age: 132});

集合数据查询

1. 查询所有记录
    db.userInfo.find();
    相当于:select* from userInfo;
    
2. 查询去重后数据(name是key)
    db.userInfo.distinct("name");
    相当于:select distict name from userInfo;
    
3. 查询age = 22的记录
    db.userInfo.find({"age": 22});
    相当于: select * from userInfo where age = 22;
    
4. 查询age > 22的记录
    db.userInfo.find({age: {$gt: 22}});
    相当于:select * from userInfo where age > 22;
    
5. 查询age < 22的记录
    db.userInfo.find({age: {$lt: 22}});
    相当于:select * from userInfo where age < 22;
    
6. 查询age >= 25的记录
    db.userInfo.find({age: {$gte: 25}});
    相当于:select * from userInfo where age >= 25;
    
7. 查询age <= 25的记录
    db.userInfo.find({age: {$lte: 25}});
    
8. 查询age >= 23 并且 age <= 26
    db.userInfo.find({age: {$gte: 23, $lte: 26}});
    
9. 查询name中包含 mongo的数据
    db.userInfo.find({name: /mongo/});
    //相当于%%
    select * from userInfo where name like '%mongo%';
    
10. 查询name中以mongo开头的
    db.userInfo.find({name: /^mongo/});
    相当于: select * from userInfo where name like 'mongo%';
    
11. 查询指定列name、age数据
    db.userInfo.find({}, {name: 1, age: 1});
    相当于:select name, age from userInfo;
    
12. 查询指定列name、age数据, age > 25
    db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
    相当于:select name, age from userInfo where age >25;
    
13. 按照年龄排序
    升序:db.userInfo.find().sort({age: 1});
    降序:db.userInfo.find().sort({age: -1});
    select age from userinfo order by age DESC/ASC
    
14. 查询name = zhangsan, age = 22的数据
    db.userInfo.find({name: 'zhangsan', age: 22});
    相当于:select * from userInfo where name = 'zhangsan' and age = ’22';
    
15. 查询前5条数据
    db.userInfo.find().limit(5);
    相当于:select top 5 * from userInfo;

16. 查询10条以后的数据
    db.userInfo.find().skip(10);
    相当于:select * from userInfo where id not in (select top 10 * from userInfo);

17. 查询在5-15之间的数据
    db.userInfo.find().limit(10).skip(5);

18. or与 查询
    db.userInfo.find({$or: [{age: 22}, {age: 25}]});
    相当于:select * from userInfo where age = 22 or age = 25;

19. 查询第一条数据
    db.userInfo.findOne();
    相当于:select top 1 * from userInfo;db.userInfo.find().limit(1);

20. 查询某个结果集的记录条数
    db.userInfo.find({age: {$gte: 25}}).count();
    相当于:select count(*) from userInfo where age >= 20;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值