Mongodb常用命令总结

Mongo的三元素
  • 三元素:数据库,集合,文档
  • 集合就是关系数据库中的表 ,文档对应着关系数据库中的行, 文档就是一个对象,由键值对构成,是json的扩展Bson形式,如{‘name’:‘guojing’,‘gender’:‘男’},数据库是一个集合的物理容器,一个数据库中可以包含多个集合,一个集合包含多个文档, 一个服务器通常有多个数据库
数据库操作
  • 查看当前数据库名称
    db
    查看所有数据库名称
    show dbs
    切换数据库 ,如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建
    use dbname
    数据库删除,删除当前指向的数据库 如果数据库不存在,则什么也不做
    db.dropDatabase()
集合操作
  • 集合创建,name是要创建的集合的名称,options是一个可选参数,用于指定集合的配置
    db.createCollection(name, options)
    查看当前数据库的集合
    show collections
    删除
    db.集合名称.drop()
文档操作
- 插入

db.集合名称.insert(document)
db.stu.insert({name:‘aaa’,gender:1})

- 更新

.db.集合名称.update(<query>,<update>, {multi: <boolean>})

  • 参数query:查询条件, 参数update:更新操作符,参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新

把name="aaa"的文档修改为name=“ccc”
db.stu.update({name:‘aaa’},{name:‘ccc’})

指定属性更新,通过操作符$ set
db.stu.insert({name:‘aaa’,gender:0})
db.stu.update({name:‘aaa’},{$set:{name:‘ddd’}})

修改多条匹配到的数据
db.stu.update({},{$set:{gender:2}},{multi:true})

- 保存
  • db.集合名称.save(document)
    如果文档的_id已经存在则修改,如果文档的_id不存在则添加
db.stu.save({_id:'20160102','name':'yk',gender:1})
db.stu.save({_id:'20160102','name':'wyk'})
  • insert和save都可以添加,区别在于:
    insert: 若新增数据的主键已经存在,则会抛出DuplicateKeyException 异常提示主键重复,不保存当前数据。
    save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作
- 删除
  • db.集合名称.remove(<query>, { justOne: <boolean> })

参数query:可选,表示删除的文档的条件
参数justOne:可选,默认false,表示删除多条,如果设为true或1,则只删除一条,
db.stu.remove({gender:0},{justOne:true})
全部删除
db.stu.remove({})

- 查询(数据查询最主要是"$表达式")
常用方法 (前两种方法的参数都是"条件文档")
  • find(document) #查询返回多条
    db.集合名称.find({条件文档})

  • findOne(document):查询,只返回第一个
    db.集合名称.findOne({条件文档})

  • pretty():将结果格式化
    db.集合名称.find({条件文档}).pretty()

比较运算符
  • 默认是等于判断,没有运算符
    小于$ lt
    小于或等于$ lte
    大于$ gt
    大于或等于$ gte
    不等于$ ne
    查询名称等于’gj’的学生
    db.stu.find({name:‘gj’})
    查询年龄大于或等于18的学生
    db.stu.find({age:{$gte:18}})
逻辑运算符
  • 查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接,默认是逻辑与的关系

查询年龄大于或等于18,并且性别为1的学生
db.stu.find({age:{$gte:18},gender:1})

逻辑或:使用$ or
查询年龄大于18,或性别为1的学生
db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})

and和or一起使用
查询年龄大于18或性别为0的学生,并且学生的姓名为gj
db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})

范围运算符
  • 使用"$ in","$ nin" 判断是否在某个范围内
    查询年龄在18~28的学生
    db.stu.find({age:{$in:[18,28]}})
判空运算符
  • $ exists 就是判断一个字段是否存在。
    { “field”: { “$exists”: <boolean> } }
    查询拥有age字段的数据
    db.stu.find({age:{$exists:true}})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值