• 掌握Mongodb,看完这篇文章就够了


    非关系型数据库(NoSQL),采用文档存储模式
    文档不需要遵循固定的表结构,每个文档都可以有不同的字段
    用来存储和检索非结构化数据
    MongoDB文档型数据库 类似json,不支持表连接
        数据库
        集合collection  相当于表
        文档  相当于行
        字段  相当于列
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    操作

    数据库操作:

    显示所有数据库

    show dbs;
    只显示非空数据库
    
    • 1
    • 2

    创建数据库:

    use 数据库名;  没有就创建,创建完就切换
                  如果有直接切换
    
    • 1
    • 2

    删除数据库:

    db.dropDatabase()  先切换到数据库
    
    • 1

    集合操作:

    集合不需要创建,使用时会自动创建

    查看所有集合

    show collections:

    创建集合

    db.createCollection(‘集合名字’);

    删除集合

    db.集合名.drop()

    数据操作:

    查询数据;

    find 找到所有
    finOne 只找到一个
    例子:db.teacher.findOne({"name":'t1'})
    
    • 1
    • 2
    • 3

    插入数据:

     insert  可以插一个或者多个
     insertOne  可以插一个
     insertMany  可以插多个
     例子: db.teacher.insertMany([{"name","t5",age:24},{"name":"t6",age:25}])
    
    • 1
    • 2
    • 3
    • 4

    删除

      deleteOne 删除一个
      deleteMany 删除多个
      例子:db.teacher.deleteOne({"name":"张三","age":21})
    
    • 1
    • 2
    • 3

    更新 $set

     update  修改一个
     updateOne  修改一个
     updateMany   修改多个
     例子:db.teacher.updateOne({"name":"张三"},{$set:{"name":"张张张"}})
    
    • 1
    • 2
    • 3
    • 4

    查询:

    比较运算符
      db.teacher.find({"age":{$gt:20}})
        eq  等于
        gt  大于
        lt  小于
        大于等于  $gte
        小于等于  $lte
        ne  不等于
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    逻辑运算符
    and直接写
         db.teacher.find( {"age":20 ,"name":"t1"} )
    或者  db.teacher.find({"$or": [{"age":20}, {"age":25}]})
    
    • 1
    • 2
    • 3
    成员运算符
    $in  db.teacher.find({"age": {$in:[21,23,24]}})
    $nin
    
    • 1
    • 2
    正则
    斜杠(/)将模式括起来
        find({"name": /^t/ })   名字以t开头
        find({"name":/.\d/})   第二个是数字
        find({"name": /3$/ })   以3结尾
    
    • 1
    • 2
    • 3
    • 4
    自定义
    find({$where: function(){return this.age>20}})
    
    • 1

    常用技术:

    排序

    db.teacher.find().sort()
    升序 1
    降序 -1
    例子:db.teacher.find().sort( {"age":-1} )
    
    • 1
    • 2
    • 3
    • 4

    统计个数

    db.teacher.find().count()
    db.teacher.count({"age":21})
    
    • 1
    • 2

    分页

    limit    限制每页返回的文档数量
    skip(n) 从n开始
    db.teacher.find().limit(n)   显示个数
    # 第2页,每页显示 2 条数据
    db.teacher.find().skip(2).limit(2)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    投影

    键表示要包含或排除的字段,值为 1 表示包含该字段,值为 0 表示排除该字段。
     find({},{列名:1,列名2:0})
     db.teacher.find({ },{"name":1,"age":1})
    
    • 1
    • 2
    • 3

    分组

    例子:sales  按照 "category" 字段对销售额进行分组并计算每个分类的总销售额
        db.sales.aggregate([
          { $group: { _id: "$category", totalSales: { $sum: "$amount" } } }
        ])
    
    • 1
    • 2
    • 3
    • 4

    聚合aggregate

    对数据处理,将上一阶段处理结果转交给下一个聚合
    aggregate  $match过滤
               db.sales.aggregate([{$match:{"category":"X"}}])
               $group分组
               $project(投影)
               $sort(排序)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    pycharm操作MongoDB:

    安装模块 pip install pymongo
    使用流程:
        导入模块  import pymongo
        创建连接  client=pymongo.MongoClient()
        找到数据库  db=client.getDatabase("")
        找到集合   collection=db.getCollection("")
        增删改查
        关闭连接  client.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    python面向对象【头歌】
    白嫖一个月的ES,完成了与MySQL的联动
    【vue-9】购物车案例
    极速系列04—python批量获取word中的表格
    SkiaSharp 之 WPF 自绘 弹动小球(案例版)
    cookie和session区别
    【附源码】计算机毕业设计JAVA学校食堂订餐管理
    mpls 笔记 part 1
    磁性机器人在医学领域取得进展
    面试题12:矩阵中的路径(回溯法)
  • 原文地址:https://blog.csdn.net/qq_59444651/article/details/136635625