05_MongoDB基本操作

进入: 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})

猜你喜欢

转载自www.cnblogs.com/nichengshishaonian/p/11540104.html