进入: mongo
退出: exit
# 时刻记住, MongeDB数据格式类似于json格式
一、 库级操作
1. show dbs # 查看所有的数据库
2. use 数据库名 # 创建/切换数据库
3. db # 查看当前使用的数据库
4. db.dropDatabase() # 删除数据库
二、 集合操作语句
1. show collections # 显示当前数据库的集合
2. db.createCollection('集合名称') # 创建集合
3. db.集合名称.drop() # 删除集合
三、 文档操作
# 增
db.集合名称.insert({}) # 添加单条数据
如: db.stu.insert({name: 'long', age: 18})
db.集合名称insert([{}, {}..]) # 添加多条
如: db.stu.insert([
{name: 'zhu', age: 19},
{name: 'cheng', age: 18}
])
# 会自动添加一个名为'_id'的字段
# 自己设置'_id'的值(_id值不能重复) 如: db.stu.insert({'_id': 1, name: 'long', age: 18})
# 查
1. 查看所有文档: db.集合名称.find()
格式化显示: db.集合名称.find().pretty()
2. 条件查找: db.集合名称.find({条件})
如查age=18的文档:
db.stu.find({age: 18})
查age=18并且 sex='M'的:
db.stu.find({age: 18, sex: 'M'})
# 操作符
$ne 不等于
$gt 大于
$lt 小于
$gte 大于等于
$lte 小于等于
用法: db.集合名称.find({age: {$gte: 18}}) # 查找age>=18的所有文档
# 逻辑运算符: 1. and条件
2. or条件
3. and 和 or 混用
用法: db.集合名称.find({$and: [{}, {}...]})
如:1. 查找age=18并且 sex='M'的
db.stu.find({$and: [{age: 18}, {sex: 'M'}]})
2. 查找age=18或者sex='M'的
db.stu.find({$or: [{age: 18}, {sex: 'M'}]})
3. and 和 or 混用
用法: db.集合名称.find({$or: [{$and: [{}...]}, {$and: [{}...]]})
如: 查找age=18, sex='M' 或者 age=18, sex='F'
db.stu.find({$or: [{$and: [{age: 18}, {sex: 'M'}]}, {$and: [{age: 18}, {sex: 'F'}]}]})
# 改 修改文档
1. 修改一条数据: (默认修改第满足条件的第一条数据)
db.集合名称.update({要修改的文档的条件}, {new}) # 重写, 直接把原数据改成new
db.集合名称.update({要修改的文档的条件}, {$set: {new}}) # 这才是修改, 指定属性修改
如: 把第一条age=15的修改成age=18
db.stu.update({age: 15}, {$set: {age: 18}})
2. 同时修改所有满足条件的: 在后面加上这一条件: {multi: true}
用法: db.集合名称.update({条件}, {$set: {new}}, {multi: true}})
如: 把age=19的全部修改成age=26
db.stu.update({age: 19}, {$set: {age: 19}}, {multi: true})
# 删 删除文档
用法: db.集合名称.remove({}) # 默认删除所有满足条件的
如: 删除所有age=18的
db.stu.remove({age: 18})
删除满足条件的第一条文档: 加上: {justOne: true}
用法: db.集合名称.remove({}, {justOne: true})
如: 删除文档中, 第一条age=18的文档
db.stu.remove({age: 18}, {justOne: true})