• Mongodb之增删改查


    一 Mongodb

    首先下载好这个和上一篇文章下载的Mongodb

    关于Mongodb的常识

     1          它的默认端口 是27017
     2 
     3     show dbs 查看所有存在磁盘上的数据库
     4     show tables 查看当前数据库存在磁盘上的数据表
     5 
     6     use 数据库 创建数据库或切换数据库
     7 
     8     ######使用了不能存在的对象即创建该对象######
     9 
    10     数据库.表名 创建表
    一些基本命令

    二 Mongodb数据的增删改查

    #insert
    
    db.user.insert({"id":1,"name":"jwb","age":73})
    
    官方推荐写法
    db.user.insertMany([{}])  #增加多条数据
    #db.use.insertMany([{'id':4,'name':'hhh','age':40,{'id':5,'name':'aaa','age':30}])
    
    db.user.insertOne({})  #增加一条数据
    #db.use.insert({'id':3,'name':'mmm','age':20}
     1 1 更新:update 修改器 $set
     2 
     3 #db.user.update({"age":84}, {$set:{"username":"hhh"}})
     4 
     5 官方推荐写法:
     6 db.user.updateOne({"name":"jwb"},{$set:{"age":99}})  #更改一条数据
     7 db.user.updateMany({"name":"jwb"},{$set:{"age":99}}) #更改多条数据
     8 
     9 
    10 
    11 
    12 2 
    13 $修改器:
    14 $set : 暴力修改 
    15 $unset : 暴力删除字段 db.user.updateOne({"name":"ywb"},{$unset:{"hobby":1}})    #'hobby':1 中的1是固定的
    16 
    17 $inc : 引用增加 在原有值的基础上增加 db.user.updateMany({name:'mmm'},{$inc:{age:1}})
    18 #这里的意思是 给名字为mmm的年龄值加1岁
    19 
    20 array修改器:
    21 $push 增加元素 :db.user.updateOne({"name":"ywb"},{$push:{"hobby":"jwb"}})
    22 
    23 #注意 :这里$push 出来的是列表
    24 {
    25     "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
    26     "id" : 1,
    27     "name" : "jwb",
    28     "age" : 3,
    29     "hobby" : [
    30         "yyong"               #########
    31     ]
    32 },
    33 
    34 $pull 删除元素 :db.user.updateOne({"name":"ywb"},{$pull:{"hobby":"jwb"}})
    35 #注意 这里只删除hobby中的jwb数据  但是不会删除掉hobby字段
    36 
    37 $pushAll 迭代增加 :
    38 db.use.updateOne({name:'jwb'},{$pushAll:{'hobby':['yy','ps','lx']}})
    39 
    40 #注意 这里迭代增加时  是添加一个列表
    41 #{
    42     "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
    43     "id" : 1,
    44     "name" : "jwb",
    45     "age" : 3,
    46     "hobby" : [
    47         "yy",
    48         "ps",
    49         "lx"
    50     ]
    51 },
    52 
    53 
    54 $pop 删除最后一条数据/第一条 :
    55 ###注意:
    56 最后一条   1的时候代表删除最后一条数据
    57 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":1}})
    58 #{
    59     "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
    60     "id" : 1,
    61     "name" : "jwb",
    62     "age" : 3,
    63     "hobby" : [
    64         "yy",
    65         "ps",
    66     ]
    67 },
    68 
    69 第一条 -1的时候代表删除第一条数据
    70 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":-1}})
    71 
    72 #{
    73     "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
    74     "id" : 1,
    75     "name" : "jwb",
    76     "age" : 3,
    77     "hobby" : [
    78         "ps",
    79     ]
    80 },
    81 
    82 
    83 $ 字符:
    84 ["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0个元素 就把 0 这个数据放在了 $ 中
    85 db.user.updateMany({hobby:"hj"},{$set:{"hobby.$":"喝酒"}})
    86 ###### $ 存储符合条件的元素下标索引 ######
    87 
    88 3 关于Object操作
    89 db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
    90 db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})
    91 
    92 Array中的Object
    93 db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})
    94 
    95 Object中的Array
    96 db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})
     1 查看 find 
     2 db.user.find()             #显示所有
     3 db.user.findOne({})   #只显示第一条数据
     4 
     5 #结果
     6 { "_id" : ObjectId("5c3efc5405130ee5819c15ce"), "id" : 1, "name" : "jwb", "age" : 73 }
     7 { "_id" : ObjectId("5c3efd9305130ee5819c15cf"), "id" : 1, "name" : "www", "age" : 77 }
     8 
     9 #注意ObjectId是唯一的 因此以后不需要id作为标识  有ObjectId就可以区别
    10 
    11 db.user.find({"id":2,"age":85}) 并列条件
    12 
    13 或条件:$or 
    14 db.user.find({$or:[{age:73},{name:"ywb"}]})
    15 
    16 同一个字段的 或条件
    17 $in : db.user.find({age:{$in:[73,84,86]}})
    18 
    19 子集检索
    20 db.user.find({what:{$in:[2,1]}})  ??????
    21 
    22 $all : 满足所有条件
    23 db.user.find({what:{$all:[2,1,3]}})   ????
    24 
    25 
    26 数学比较符:
    27 $gt : 大于 
    28 db.user.find({age:{$gt: 73}})
    29 
    30 $gte: 大于等于
    31 db.use.find({age:{$gte:73}})
    32 
    33 $lt : 小于
    34 db.use.find({age:{$lt:40}})
    35 
    36 $lte: 小于等于
    37 db.use.find({age:{$lte:45}})
    38 
    39 $eq : 等于 
    40 :也是等于
    更新: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}})

    三 Mongodb的数据类型

     1 ObjectID :Documents 自生成的 _id
     2 String: 字符串,必须是utf-8
     3 Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
     4 Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
     5 Double:浮点数 (没有float类型,所有小数都是Double)
     6 
     7 #注意 无float型
     8 
     9 Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
    10 Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
    11 Null:空数据类型 , 一个特殊的概念,None Null
    12 
    13 Timestamp:时间戳
    14 Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
    15 
    16 
    17 MongoDB中的跳过选取排序:
    18 skip(5) 跳过五条数据
    19 limit(5) 只显示五条数据
    20 分页 skip(5).limit(5)
    21 
    22 sort({age:1})  正序
    23 sort({age:-1}) 倒序
    24 
    25 如果三个关键字同时出现
    26 1.sort 2.skip 3.limit
    数据类型

    四 Mongodb的$

    $修改器:
    $set : 暴力修改 
    $unset : 暴力删除字段 db.user.updateOne({"name":"ywb"},{$unset:{"hobby":1}})    #'hobby':1 中的1是固定的
    
    $inc : 引用增加 在原有值的基础上增加 db.user.updateMany({name:'mmm'},{$inc:{age:1}})
    #这里的意思是 给名字为mmm的年龄值加1岁
    
    array修改器:
    $push 增加元素 :db.user.updateOne({"name":"ywb"},{$push:{"hobby":"jwb"}})
    
    #注意 :这里$push 出来的是列表
    {
        "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
        "id" : 1,
        "name" : "jwb",
        "age" : 3,
        "hobby" : [
            "yyong"               #########
        ]
    },
    
    $pull 删除元素 :db.user.updateOne({"name":"ywb"},{$pull:{"hobby":"jwb"}})
    #注意 这里只删除hobby中的jwb数据  但是不会删除掉hobby字段
    
    $pushAll 迭代增加 :
    db.use.updateOne({name:'jwb'},{$pushAll:{'hobby':['yy','ps','lx']}})
    
    #注意 这里迭代增加时  是添加一个列表
    #{
        "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
        "id" : 1,
        "name" : "jwb",
        "age" : 3,
        "hobby" : [
            "yy",
            "ps",
            "lx"
        ]
    },
    
    
    $pop 删除最后一条数据/第一条 :
    ###注意:
    最后一条   1的时候代表删除最后一条数据
    db.user.updateOne({"name":"ywb"},{$pop:{"hobby":1}})
    #{
        "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
        "id" : 1,
        "name" : "jwb",
        "age" : 3,
        "hobby" : [
            "yy",
            "ps",
        ]
    },
    
    第一条 -1的时候代表删除第一条数据
    db.user.updateOne({"name":"ywb"},{$pop:{"hobby":-1}})
    
    #{
        "_id" : ObjectId("5c3efc5405130ee5819c15ce"),
        "id" : 1,
        "name" : "jwb",
        "age" : 3,
        "hobby" : [
            "ps",
        ]
    },
    
    
    $ 字符:
    ["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0个元素 就把 0 这个数据放在了 $ 中
    db.user.updateMany({hobby:"hj"},{$set:{"hobby.$":"喝酒"}})
    ###### $ 存储符合条件的元素下标索引 ######
    关于$修饰符

    五 关于pymongo

    1 首先你要下载好pymongo,否则在导入时会报错

    import pymongo
    import json
    from bson import ObjectId
    
    mongoclient = pymongo.MongoClient(host="127.0.0.1",port=27017) 
    #连接MongoClient
    
    MongoDB = mongoclient["locals"]   #连接你要操作的数据库
    
    res = MongoDB.user.find({})  #查询数据
    for i in res:
         print(i)
         i["_id"] = str(i.get("_id"))
         print(i.get("_id"),type(i.get("_id")))
         s = json.dumps(i)
    
    #查询
    res = MongoDB.user.find_one({},{"_id":0})
    #注意 这里的{'_id':0}  去掉第一个数据'_id':ObjectId
    
    print(res)
    res = list(MongoDB.user.find({"id":1}))
    print(res)
    
    #增加
    res = MongoDB.user.insert_one({"id":1,"age":55,"name":"taibai"})
    print(res,type(res),res.inserted_id)
    
    res = MongoDB.user.insert_many([{"id":1,"age":55,"name":"taibai"},{"id":1,"age":55,"name":"taibai"}])
    print(res,type(res),res.inserted_ids)
    
    # 修改:
    res = MongoDB.user.update_one({"age":55},{"$set":{"name":"四金"}}) print(res,dir(res))
    
    MongoDB.user.update_many({"age":55},{"$set":{"name":"四金"}})
    
    #删除:
    res = MongoDB.user.delete_one({"id":1})
    res = MongoDB.user.delete_many({"id":1})
    
    
    # sort limit skip
    
    res = list(MongoDB.user.find({}).limit(5).skip(2))
    print(res)
    
    res = list(MongoDB.user.find({}).sort("age",pymongo.DESCENDING).limit(5).skip(2))
    print(res)
    
    # s = ObjectId("5c3ea77e23652a0218a5ab9a")
    #
    # res = MongoDB.user.find_one({"_id":ObjectId("5c3ea77e23652a0218a5ab9a")})
    # print(res)
    pymongo
  • 相关阅读:
    <audio> 标签简介
    <sessionState>
    为 IIS 7.0 配置 <system.webServer>
    Litepal 数据库操作框架的使用 (火)
    Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)
    【iOS开发-55】图片轮播案例:scrollView的分页、滚动栏、利用代理控制定时器和Page Control以及多线程问题
    小白学react之网页获取微信用户信息
    HTML5游戏实战(1):50行代码实现正面跑酷游戏
    浮动、定位
    Tomcat7.0源代码分析——启动与停止服务原理
  • 原文地址:https://www.cnblogs.com/mlhz/p/10279656.html
Copyright © 2020-2023  润新知