mongodb基本命令及python使用增删改差

一.基本命令(shell中操作)

  1. 查看当前数据库:db
  2. 查看所有数据库:show dbs/show databases;
  3. 切换数据库:use db_name
  4. 删除当前数据库:db.dropDatabase()
  5. 手动创建集合
    1. db.createCollection(name,options)
    2. db.createCollection('stu')
    3. db.createCollection('stb',{capped:true,size:10})
      1. capped为true表示设置上限,false为无上限
      2. capped为true时,需要设置size,表示上限大小,当达到上限,会将之前数据覆盖,单位为字节
    4. 查看集合:show collections
    5. 删除集合:db.集合名称.drop()

二.常见数据类型

  1. Object ID
  2. String
  3. Boolean
  4. Integer
  5. Double
  6. Arrays
  7. Object
  8. Null
  9. Timestamp
  10. Date

三.mongodb增删改查

    1. db.集合名称.insert(document)
      1. db.stu.insert({name:'gj',gender:1})
      2. db.stu.insert({_id:"20170101",name:"gj",gender:1})
  1. 保存
    1. db.集合名称.save(document)如果文档_id已经存在则修改,不存在则添加
  2. 简单查询
    1. db.集合名称.find()
  3. 更新
    1. db.集合名称.update(<query>,<update>,{multi:<boolean>})
    2. 参数query:查询条件
    3. 参数update:更新操作
    4. 参数multi:默认false,表示之更新找到的第一条,true为满足条件的文档全部更新
    5. db.stu.update({name:'hr'},{name:'mcn'})更新一条
    6. db.stu.update({name:'hr'},{$set:{name:'hys'}})更新一条
    7. db.stu.update({},{$set:{gender:0}},{multi:true}) 更新全部
  4. mongodb高级查询
    1. 数据查询
      1. finde():查询
        1. db.集合名.find({条件文档})
      2. findOne():查询,只返回第一个
        1. db.集合名称.findOne({条件文档})
      3. 方法pretty():将结果格式化
        1. db.集合名称.find({条件文档}).pretty()
    2. 比较运算符(db.stu.find({age:{$gte:18}}))
      1. 等于,默认是等于,没有运算符
      2. 小于:$lt(less than)
      3. 小于等于:$lte
      4. 大于:$gt
      5. 大于等于:$gte
      6. 不等于:$ne
    3. 逻辑运算符
      1. and:json中写多个条件即可
        1. 查询年龄大于等于18,并且性别为true的学生
          1. db.stu.find({age:{$gte:18},gender:true})
      2. or:使用$or,值为数组,每个元素为json
        1. 查询年龄大于18,或性别为false的学生
          1. db.stu.find({$or:[{age:{$gte:18}},{gender:true}],name:'gj'})
    4. 范围运算符
      1. $in,$nin判断数据是否在某个数组内
        1. 查询年龄为18,28的学生
          1. db.stu.find({age:{$in:[18,28,3]}})
    5. 正则查询
      1. 使用//或者$regex编写正则
        1. 查询sku以abc开头的数据
          1. db.products.find({sku:/^abc/}
        2. 查询sku以789结尾的数据
          1. db.products.find({sku:{$regex:'789$}})
    6. skip和limit
      1. limit():读取指定数量的文档
        1. db.集合名称.find().limit(NUMBER)
          1. db.stu.find().limit(2)
        2. 方法skip():用于跳过指定数量的文档
          1. db.集合名称.find().skip(number)
            1. db.stu.find().skip(2)
    7. 投影(查询到的结果中选择必要的字段,1为现实,0为不显示)
      1. db.集合名称.find({},{字段名:1,...})
    8. 排序(1为升序,-1为降序)
      1. db.集合名称.find().sort({字段:1,...})
    9. 统计个数
      1. count()
      2. db.stu.find({gender:true}).count()
      3. db.stu.count({age:{$gt:20},gender:true})
    10. 消除重复
      1. distinct()对数据进行去重
        1. db.集合名称.distinect(‘去重字段’,{条件})
          1. db.stu.distinct('hometown',{age:{$gt:18}})

猜你喜欢

转载自blog.csdn.net/weixin_42670402/article/details/88377319