- 常用命令
- 连接数据库
- 创建数据库并插入数据
- 查看表(集合)
- 删除数据库 dropDatabase()
- 删除表(集合) drop()
- 插入(增加)数据 insert()
- 查找数据 find()
- 1查询所有记录
- 2查询去掉后的当前聚集集合中的某列的重复数据
- 3查询 age=25的数据
- 4 查询age>22的数据(记录)
- 5 查询age<22的数据(记录)
- 6 查询age>=22的数据(记录)
- 7 查询age<=22的数据(记录)
- 8 查询age>=22并且 age<=30的数据(记录) 注意书写格式
- 9 模糊查询用于搜索 查询name中包含mongo 的数据
- 10 模糊查询用于搜索 查询name中以mongo 开头的数据
- 11查询指定列 name , age 的数据
- 12显示指定列 name和age 数据, age>25
- 13 按照年龄排序 1升序 -1降序
- 14查询name=zhubajie,age=29
- 15查询前3条数据
- 16查询3条后的数据
- 17查询3-5条的数据
- 18 or或者与 查询多条件
- 19 查询第一条数据
- 20查询某个结果集的记录条数 统计数量
- 修改数据 update()
- 删除数据 remove()
- 查询与更新 findOneAndUpdate()
常用命令
Show dbs //查看当前数据库 有那些
use chen //创建数据库 (或进入到这个数据库 )
db.user.insert({“username”:”zhangsang”,”age”:20 }) //插入数据
Show collections //查看集合(表)
Show users //查看当前数据库 是否有用户
连接数据库
命令cmd 输入 MongoDB 即可
创建数据库并插入数据
1 创建数据库
Use chen //并没有完全的创建好,需要 1和2 都执行了才算
2 插入数据
db.user.insert({"username":"zhangsang","age":20 })
查看表(集合)
1 查看所有数据库列表
show dbs
2 首先进入到指定的数据库
use chen
3 查看当前的数据库 有那些表(集合)
show collections
4 查看表 有那些数据 (user 是3 查看出来的 表)
db.user.find()
删除数据库 dropDatabase()
1 首先切换到当前的数据库
use chen
2 开始删除
db.dropDatabase() // 即可
删除表(集合) drop()
1 进入到当前数据库
use chen
show collections
2 开始删除
//user 是表
db.user.drop()
即可
插入(增加)数据 insert()
db.user.insert({“username”:”zhangsang”,”age”:23});
查找数据 find()
1查询所有记录
Db.user.find() //user 是表
相当于 select*from user ;
2查询去掉后的当前聚集集合中的某列的重复数据
Db.user.distinct(“username”);
会过滤掉name 中的相同数据
相当于 select distict name from user ;
3查询 age=25的数据
db.admin.find({“age”:25})
4 查询age>22的数据(记录)
db.admin.find({age:{$gt:22}})
相当于: select*form admin where age>22
5 查询age<22的数据(记录)
db.admin.find({age:{$lt:22}})
相当于: select*form admin where age<22
6 查询age>=22的数据(记录)
db.admin.find({age:{$gte:22}})
相当于: select*form admin where age<=22
7 查询age<=22的数据(记录)
db.admin.find({age:{$lte:22}})
相当于: select*form admin where age<=22
8 查询age>=22并且 age<=30的数据(记录) 注意书写格式
db.admin.find({age:{$gte:22 $lte:28}})
9 模糊查询用于搜索 查询name中包含mongo 的数据
注意:数据量比较小的用这个, 数据量大的话,建议使用第三方模块 ,因为原生的性能不是很好
db.admin.find({name:/mongo/})
相当于 %%
Select*from admin where name like ‘%mongo%’;
10 模糊查询用于搜索 查询name中以mongo 开头的数据
db.admin.find({name:/^mongo/})
11查询指定列 name , age 的数据
有2个参数 : 第一个参数 可空或条件 第二个参数 显示指定名称的
db.admin.find({},{name:1}) 只显示 name 这一列
db.admin.find({},{age:1}) 只显示 age 这一列
db.admin.find({age:{$gte:25}},{age:1}) 条件 只显示 age
当然 name 也可以用true 或false,
当用 true 的情况下和 name:1 效果一样,
如果用false就排除name,显示name以外的列信息
12显示指定列 name和age 数据, age>25
db.admin.find({age:{$gt:25}},{name:true,age:true})
db.admin.find({age:{$gt:25}},{name:1,age:1})
相当于 : select name,age from user where age>25;
13 按照年龄排序 1升序 -1降序
升序:
db.admin.find().sort({age:1})
降序:
db.admin.find().sort({age:-1})
14查询name=zhubajie,age=29
db.admin.find({username:'zhubajie',age:29})
相当于: select*from user where name = ‘zhubajie’ and age=’22’ ;
15查询前3条数据
db.admin.find().limit(3)
相当于 selecttop5 *from user
16查询3条后的数据
并包含第3条
db.admin.find().skip(3)
17查询3-5条的数据
db.admin.find().limit(5).skip(3)
可用于分页,
limit是pageSize ,
Skip 是第几页 *pageSize
18 or或者与 查询多条件
db.admin.find({$or:[ {age:22}, {age:27} ]})
相当于: select*from user where age=22 or age=27;
await cardMi.find({$or:[{user_id:'615038123ccf5eba3950e688'},{dev_id:'615038123ccf5eba3950e688'}]})
查询条件为user_id 或者 dev_id 都为615038123ccf5eba3950e688
19 查询第一条数据
db.admin.findOne()
相当于 selecttop 1*from user;
20查询某个结果集的记录条数 统计数量
db.admin.find({age:{$gte: 25}}).count()
如果要返回限制之后的记录数量 ,要使用count(true) 或者 count(非0)
db.admin.find().skip(3).limit(5).count(true)
修改数据 update()
db.admin.update({"username":"xiaogei"},{$set:{"age":28}})
db.admin.upDtate({“username”:”xiaogei”},{$set:{“sex”:”男”}}) //sex字段不存在,则 增加该字段数据
第一个参数: 填条件
第二个参数:设置指定 新的内容
查找数学成绩是70 ,把年龄更改为30岁
db.admin.update({"username":"lisi","age":12 },{$set:{"username":"lisi","age":33}})
可在花括号里书写
参数1 多种条件,用逗号隔开
参数2 修改多种或插入数据,用逗号隔开
注意: 错误的写法
db.admin.update({“username”:”lisi”},{“username”:”小五”})
完整替换
db.admin.update({“username”:”lisi”},{“username”:”小五”})
批量修改
db.admin.update({},{},{multi:true})
db.admin.update({"age":12},{$set:{"username":"piliang"}},{multi:true})
删除数据 remove()
批量删除
参数: 条件的意思
db.admin.remove({"username":"piliang"})
注意:如果remove({ }) 不书写条件,则会删除admin 表里的所有数据
批量删除只删开头第1条
db.admin.remove({},{justOne:true}) //在第二条参数书写 justOne:true 即可
db.admin.remove({“age”:{$gte:1}},{justOne:true});
批量生成数据for(){}
注意书写 格式 需要回车
for(let i=1;i<100;i++){
... db.admin.insert({"username":"zhangs"+i,"age":i})
... };
查询与更新 findOneAndUpdate()
字段自增
let newdata =await DATAUSER.findOneAndUpdate({source:1, count:0},{$inc:{count:1}}).lean()
自身字段条件比较
let twodata = await DATAUSER.findOneAndUpdate({source:2, "$where":"this.count < this.maxcount"},{$inc:{count:1}}).lean()