基本操作
命令操作 ----- maogo
- 退出mongoDB使用exit
- 查看所有的数据库列表 ---- show dbs
- 创建数据库或切换数据库 --- use 数据库名
- 可以使用db命令来查看当前所在的数据库名称
- 给数据库中创建一个members的集合,并向集合中添加文档(行)数据 ---- db.表名/集合名.insert(JSON格式数据)
- 查看当前数据库中的集合列表 --- show tables 或者 show collections
- 删除表 --- db.表名/集合名.drop()
- 删除库 --- db.dropDatabase()
增删改查
增
# 添加单条文档数据
db.表名/集合名.insertOne({ key: value , key: value...})
# 添加多条文档数据
db.表名/集合名.insertMany([{}, {}, {}])
# 可以添加单条也可以多条数据(为主)
db.表名/集合名.insert( {} )
db.表名/集合名.insert([{}, {} ])
查
- 查询所有的数据 --- db.表名/集合名.find(); # 获取全部
- 带条件查询 --- db.表名/集合名.find({key:value,key:value....})
- 字段显示控制 --- db.表名/集合名.find({key:value,key:value....})
- 逻辑运算
### 条件表达式
# 年龄大于5的
db.表名/集合名.find({age:{$gt:5}}); #age > 5(great than)
# 年龄大于等于5的
db.表名/集合名.find({age:{$gte:5}}); #age >= 5 (great than & equal)
# 年龄小于5的
db.表名/集合名.find({age:{$lt:5}}); #age < 5 (less than)
# 年龄小于等于5的
db.表名/集合名.find({age:{$lte:5}}); #age <= 5
# 年龄不等于5的
db.表名/集合名.find({age:{$ne:5}}); #age != 5 (not equal)
# 在一个指定的数值中查询 $in 年龄在不在这几个指定数值当中
db.表名/集合名.find({age:{$in:[1,2,3]}) ## where xxx in '集合'
## 且关系 and
db.表名/集合名.find({age:{$lt:5},username:"user11"})
## where age < 5 & username = 'user11'
## 或关系 or(有点绕)
db.表名/集合名.find({$or:[{条件1},{条件2}]})
## 例如
db.表名/集合名.find({$or:[{age:{$ne:5}},{username: "user11"}]});
需求:查询出年龄小于30或者gender为0的数据
db.members.find({$or:[{age:{$lt:30}},{gender:0}]})
- 模糊查询 ---- db.表名/集合名.find({字段名:/正则/i})
- 统计
db.表名/集合名.count(); // 统计所有的记录的总数
db.表名/集合名.find({}).count(); // 统计符合条件的结果的记录总数
注意点:find()顺序是否可以与count()颠倒。count不能与find的顺序交换
- 排序
# 1 升序 -1 降序 字段
# 以age字段来升序
db.表名/集合名.find().sort({age:1})
# 以age字段来降序
db.表名/集合名.find().sort({age:-1})
- 分页(实用)
db.表名/集合名.find().limit(3);
db.表名/集合名.find().skip(1).limit(3);
改
# 更新是要有条件的,没有条件在数据库层面来讲是可以更新的,但是实际是没有对应的业务需求
# 只修改单条文档
db.表名/集合名.updateOne({key:value},{$set:{key:value}})
# 修改符合条件所有文档数据
db.表名/集合名.updateMany({key:value},{$set:{key:value}})
## 如果上述两个方法的条件一致,并且有多个符合条件的,那么:
# updateOne,不管有多少个符合条件的只修改第一个
# updateMany,有多少改多少
# 字段的值的`自增和自减`
db.表名/集合名.updateOne({key:value},{$inc:{key:1}}) // increments,自增
db.表名/集合名.updateMany({key:value},{$inc:{key:1}})
db.表名/集合名.updateOne({key:value},{$inc:{key:-1}}) // decrements
db.表名/集合名.updateMany({key:value},{$inc:{key:-1}})
# 自增是整数,自减是负数
# 更新和删除操作允许不写条件,但是不能不写
删
# 删除单条文档
db.表名/集合名.deleteOne({ key: value })
# 删除符合条件多条文档
db.表名/集合名.deleteMany({key: value})
# 删除全部数据(慎用)
db.表名/集合名.deleteMany({})