本篇文章适合新手想学习mongodb数据库的前端开发同学,都是一些数据库基础操作的整理,第一篇主要是针对数据库表(集合)的增、删、改、查的一些操作。
1、安装mongodb数据库
安装的过程没什么好说,选择对应的操作系统的mongodb数据库,然后傻瓜式安装点击下一步就可以了,点这里下载,需要注意的一点就是安装的过程中可能我们呢选择了数据库的data存储的目录可能还是不能启动的状况,所以我们最好是自己再创建一个文件用来存储mongodb数据的,如下:我是安装再了C盘下面,自己创建了一个 DBdata/data
2、启动mongodb数据库
在 C:\MongoDB\bin 下面打开cmd终端,输入命令 mongod --dbpath C:\DBdata\data 启动,后面的路径就是刚刚创建的用来存储mongodb数据的路径,此时此时访问 localhost:27017 出现如下页面说明启动成功
3、接下就是使用cmd终端命令对mongodb进行的一些操作了
首先在 C:\MongoDB\bin 下面在打开一个 cmd, 输入 mongo
操作数据库命令:后面我们操作围绕下图结构操作
- 查看数据库:show dbs
- 使用/创建数据库:use 数据库名称;use abc 使用 abc 数据库,如果原本不存在 abc 数据库,此时还不会创建 abc 数据库,只有当向abc下面的表里面插入数据的时候才会创建对应的数据库和表
- 创建user表并插入数据: db.user.insert({ "username": "zhangsan", "age": 20 }),此时成功创建了 abc 数据库和 user 表
- 查看数据库下面有那些表:show collections ;可以查看到刚刚创建的 user 表(前提比需要先切换到想要查看的数据库: use 数据库名)
- 查询表数据:db.表名称.find(查询条件);查看user表的所有数据,db.user.find(),查询条件可以是一个条件也可以是多个条件例如:{ name: 'zhangsan' } 查找name是zhangsan的数据;{ name: 'zhangsan', age: 12 } 查找name是zhangsan并且age是12的数据
- 删除指定表(集合):db.表名.drop()
- 删除数据库,删除当前所在的数据库:db.dropDatabase();
- 按照条件进行查询:$gt 大于;$gte 大于等于;$lt 小于;$lte 小于等于;例如:查询 user 表中 age > 20 的数据:db.user.find({ 'age': { $gt: 20 } });年龄在 23 到 26 之间的数据 db.user.find({ 'age': { $get: 23, $lte: 26 } })
- 模糊查询name, db.user.find({ 'name':正则表达式 }) ,例如:查询name中包含mongo的数据:db.user.find({ 'name':/mongo/ })
- 查询只显示指定的列的数据 db.表名称.find( {条件}, { 展示字段:1, 展示字段2: 1, ... 省略 })
- 排序查询 db.表名称.find().sort({ 排序字段: 1 }) 1 升序,-1 降序:例如:按照年龄升序查询 db.user.find().sort({ age: 1 })
- 查询前几条数据 db.表名称.find().limit(数值)
- 查询多少条之后的数据:db.表名称.find().skip(数值)
- limit 和 skip 经常用来配合使用实现数据的分页查询,假设我们查询 第三条和第四条数据: db.user.find().skip(2).limit(2)
- or 或者查询 db.表名称.find({ $or:[条件一, 条件二, ... 省略] }):例如:找到张三或者老王 db.user.find({$or:[{name: '张三'}, { name: '老王' }]})
- 只查找第一条数据 db.表名称.findOne(条件) :比较鸡肋的一个方法没啥太大用处 使用 db.user.find().limit(1) 是同样效果
- 修改/更新数据 db.表名称.update( 条件,{ $set: 修改成的数据 }) ; 例如:1、把user 表中张三的年龄改成 20, db.user.update({ name: '张三' }, { $set: { age: 20 } }) 2、把user表中数学分数是 70 的的数据的语文分数改成 95:db.user.update({'score.shuxue': 70}, { $set: { 'score.yuwen': 95 } }) ;ps:里面的 $set 一定要写,如果不写 $set 的话表示的是,数据替换,批量处理把所有name是张三的 age 改成 30 db.user.update({name: '张三' }, { $set: { age: 30 } }, { multi: true }),需要添加第三个参数 { multi: true }.
- 删除数据 db.数据名.remove(条件);如果不写条件那么所有的数据就都被删除掉了,如果只是想要删除条件的一条数据,添加第二个参数 { justOne: true } ; 例如: 删除admin中age大于10的数据的第一条, db.admin.remove({ age: { $gte: 10 } }, { justOne: true })
ps:总之就是数据库里面必须有表有数据这个库才存在。
补充:分页查询的实现:首先我们先在user 中的 admin 表中添加 100 条数据,可以在cmd 中使用 for 循环添加,和写js一样
这样数据就添加成功了,输入 it 查看下一页,每次展示 20 条数据,查看总共多少条数据 db.admin.find().count() 。
分页的实现
db.admin.find().skip((page - 1 )* pageSize).limit(pageSize) :每页10条,查询第 n 页的数据 db.admin.find().skip((n - 1)*10).limit(10);
这一篇文章先介绍到这里下一篇会介绍mongodb 索引查询、表关系、mongodb用户权限设置,写的不好的或者有疑问的大家可以留言讨论,感觉还可以有帮助的可以点赞打赏一下。