zoukankan      html  css  js  c++  java
  • MongoDB

    前戏:
      启动Mongodb
      mongod --dbpath "数据库目录"
      默认端口 27017

      show dbs 查看所有存在磁盘上的数据库
      show tables 查看当前数据库存在磁盘上的数据表

      use 数据库 创建数据库或切换数据库

      ######使用了不能存在的对象即创建该对象######

      数据库.表名 创建表

    概念:

    Mysql:
        id      name    age        duixiang    hobby
        1        jwb        73        2            2
        2        ywb        84        1            null

    MongoDB:

    [
            {
                "id":1,
                "name":"jwb",
                "age":73,
                "hobby":["ywb","lwb"],
                "duixiang":{
                    "id":2,
                    "name":"ywb",
                    "age":84
                }
            },
            {
            
                "id":2,
                "name":"ywb",
                "age":84,
                "duixiang":{
                    "id":1,
                    "name":"jwb",
                    "age":73,
                }
            }
        ]

    mysql                         mongodb
    数据库                        数据库
    表                               collections
    列                               Field
    row                             documents

    数据增删改查
    增加 insert

      #db.user.insert({"id":1,"name":"jwb","age":73})

    官方推荐写法

      db.user.insertMany([{}])
      db.user.insertOne({})

    查看 find

    db.user.find()
    db.user.findOne({})
    
    db.user.find({"id":2,"age":85}) 并列条件
    或条件:
    $or : db.user.find({$or:[{age:73},{name:"ywb"}]})
    
    同一个字段的 或条件
    $in : db.user.find({age:{$in:[73,84,86]}})
    子集检索
    db.user.find({what:{$in:[2,1]}})
    
    $all : 满足所有条件
    db.user.find({what:{$all:[2,1,3]}})

    数学比较符:

    $gt : 大于 db.user.find({age:{$gt: 73}})
    $gte: 大于等于
    $lt : 小于
    $lte: 小于等于
    $eq : 等于 
    :也是等于
    "_id" : ObjectId("5c3e84cf1e235402547fa40c")

    更新:update 修改器 $set

    #db.user.update({"age":84}, {$set:{"username":"jinjiaodawangba"}})
    
    官方推荐写法:
    db.user.updateOne({"name":"jwb"},{$set:{"age":99}})
    db.user.updateMany({"name":"jwb"},{$set:{"age":99}})

    删除:remove / delete

    #db.user.remove({"age":85})
    
    官方推荐写法:
    db.user.deleteOne({"name":"jwb"})
    db.user.deleteMany({"name":"jwb"})

    $修改器:

    $set : 暴力修改 
    $unset : 暴力删除字段 db.user.updateOne({"name":"ywb"},{$unset:{"hobby":1}})
    $inc : 引用增加 在原有值的基础上增加 db.user.updateMany({},{$inc:{age:1}})
    
    array修改器:
    $push 增加元素 :db.user.updateOne({"name":"ywb"},{$push:{"hobby":"jwb"}})
    $pull 删除元素 :db.user.updateOne({"name":"ywb"},{$pull:{"hobby":"jwb"}})
    $pushAll 迭代增加 :db.user.updateOne({"name":"ywb"},{$pushAll: {"hobby":[1,2,3]}})
    $pop 删除最后一条数据/第一条 :
    最后一条 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":1}})
    第一条 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":-1}})
    
    $ 字符:
    ["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0个元素 就把 0 这个数据放在了 $ 中
    db.user.updateMany({hobby:"hj"},{$set:{"hobby.$":"喝酒"}})

    ###### $ 存储符合条件的元素下标索引 ######

    Object操作

    db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
    db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})
    
    Array中的Object
    db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})
    
    Object中的Array
    db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})

    数据类型:
      ObjectID :Documents 自生成的 _id

      String: 字符串,必须是utf-8
      Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
      Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
      Double:浮点数 (没有float类型,所有小数都是Double)

      Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
      Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
      Null:空数据类型 , 一个特殊的概念,None Null

      Timestamp:时间戳
      Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

    MongoDB中的跳过选取排序:
      skip(5) 跳过五条数据
      limit(5) 只显示五条数据
      分页 skip(5).limit(5)

      sort({age:1}) 正序
      sort({age:-1}) 倒序

      pymongo排序 sort("key",pymongo.AESCENDING = 1)
      ymongo排序 sort("key",pymongo.DESCENDING = -1)

      如果三个关键字同时出现
      1.sort 2.skip 3.limit

      

  • 相关阅读:
    HTTP协议强化理解
    常识
    向后看,比起实习期,现在的你不是已经很好了吗?
    Git学习笔记——一个NB的分布式版本控制系统
    计算机通识
    多测师讲解——sql 注入——高级讲师肖sir
    多测师讲RF _关键字整理_高级讲师肖sir
    多测师讲解RF _REQUEST_高级讲师肖sir
    多测师jenkins_svn和git拉取代码_高级讲师肖sir
    多测师讲解jenkins_设置邮箱_高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/chenxi67/p/11252528.html
Copyright © 2011-2022 走看看