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})
  • 相关阅读:
    eclipse 中 debug-config
    release稳定版本/snapshot快照版本
    nginx.config文件配置
    用 Spring Boot 和 MybatisPlus 快速构建项目
    github 生成ssh key
    Vagrant安装virtualbox
    修改linux默认时区
    《加密与解密》笔记
    manjaro 安装显卡驱动
    排序算法-C++实现
  • 原文地址:https://www.cnblogs.com/yb635238477/p/9807536.html
Copyright © 2011-2022 走看看