flask基础 MongoDB

Posted 黑猫不是警长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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})

 

以上是关于flask基础 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

Flask 编写http接口api及接口自动化测试

Flask 查询 Mongodb 很慢

Flask+mongodb 实现简易个人博客

flask中配置并使用mongodb

使用带有 Python Flask 的 HTML 表单搜索 MongoDB 集合

python Flask - 数据库片段