zoukankan      html  css  js  c++  java
  • flask基础 MongoDB

    MongoDB

    在使用MongoDB时,有一个原则:  
        使用不存在的对象即创建该对象例如: user.nickname = Dragonfire
       他的数据存储格式是:
        [    {
                ID:1,
                name:jinwangba,
                age:84,
                hobby:[piaochang,taiguo,qiaoqun]
            },
            {
                ID:2,
                name:yinwangba,
                age:73,
                hobby:[keyiqusile]
            },
            {
                ID:2,
                name:yinwangba,
                age:73,
                hobby:[{
                    date:2018年10月17日,
                    name:"jinwangba"
                },
                
                ]
            }
        ]

         关系型数据库  MongoDB:
        表           table         Collections
        字段      Colum        Fields
        行          Row           Documents

    MongoDB 之 丰富多彩的数据类型世界

    首先我们要先了解一下MongoDB中有什么样的数据类型:

    Object  ID :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数据库,

    然后把MongoDB的bin目录添加进环境变量中。

    打开终端cmd,输入mongod,启动数据库,这时候会抱一个错误,是说  缺少

    这时候我们在c盘中创建这么一个文件夹。就不会报错了。

    重新输入mongod,启动数据库。

    打开另一个终端,进入数据库。

    我们都不爱在数据库中敲代码,所以我们用MongoDB的可视化工具。NoSQLBooster for MongoDB

    先链接s12day117数据库

     插入:

     在存入数据库的时候有一个_di字段:这个字段是mongo给我们加的,全宇宙唯一。

    删除:

    修改:

    $修改器:

    $set增加或者修改字段

    $unset    删除字段

    $lt 小于
    $gt    大于
    $lte 小于等于
    $gte 大于等于
    $eq : 等于

     

    $inc 在原有值基础上增加
     

    $push 在Arrays中添加一个元素
            {$push: {hobby:"养生"}} 在Hobby中添加一个“养生”

    $pull 在Arrays中删除一个元素
            {$pull: {hobby:"抽烟"}} 在Hobby中删除一个“抽烟”

     $pop 在Arrays中删除最后一个元素或第一个元素

     

    $ : 存储  满足前置条件列表元素的下标索引

    相当于:

    练习:

    查询$关键字:
            $all #满足所有元素的数据
                db.user.find({myczdyy:{$all:[1,3]}})
            $in    #满足其中一个元素的数据
                db.user.find({myczdyy:{$in:[1,3]}})
            $or #满足其中一个字段的数据
                db.user.find({$or:[{name:"yinwangba"},{age:{$gt:70}}]})
           

     limit(x):
            只查询前x条数据
     skip(x):
            跳过多前x条数据
     sort({ id:-1 }):
            根据id字段进行倒序排列:-1  正序排列:1

     

    利用上面这三个可以实现分页的功能。

    这些是在mongo数据库中操作。我们在python中怎么用mongo数据库

    首先下载插件pymongo,python3 -m pip install pymongo

    import pymongo
    
    # 建立连接,mongo的默认端口是27017
    mongo_client = pymongo.MongoClient(host='127.0.0.1',port=27017)
    # 连接s12day117数据库
    mongo_db = mongo_client['s12day117']
    # 查询
    res = mongo_db.user.find()
    print(res)
    for i in res:
        print(i)
    res = mongo_db.user.find_one({'name':'yang'})
    print(res)
    
    #插入
    res = mongo_db.chat.inset_one({})
    print(res,res.inserted_id)
    res = mongo_db.chat.inset_many([{},{},{}])
    print(res,res.inserted_ids)
    
    #
    res = mongo_db.user.update_one({'name':'yang'},{'$set':{'age':888}})
    res = mongo_db.user.update_many({"age":{"$gte":0}},{"$set":{"age":888}})
    print(res,dir(res),res.modified_count)
    
    # 删除
    res = mongo_db.user.delete_one({"name":"xiaozhuer"})
    res = mongo_db.user.delete_many({})
    print(res,dir(res),res.deleted_count)
    
    res = mongo_db.user.find_one({"name":"yang"})
    print(res)
    for index,item in enumerate(res.get('course')):
        if res.get('course')[index]['course_name'] == 'linux':
            res.get('course')[index]['course_name'] = 'django框架'
    res = mongo_db.user.update_one({'name':'yang'},{'$set':res})
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/yb635238477/p/9807536.html
Copyright © 2011-2022 走看看