Python服务器运维笔记:第四章web性能优化 - 4.1.2.mongodb数据库

    技术2022-07-11  76

    前言:本文是学习网易微专业的《python全栈工程师》 中的《服务器运维开发工程师》专题的课程笔记,欢迎学习交流。同时感谢老师们的精彩传授!

    一、课程目标

    mongodb特点mongodb安装pymongo的CURD

    二、详情解读

    2.1.mongodb特点

    mongodb是文档型数据库: 在mysql关系型数据库中,数据由若干行组成,每一行都具有相同的字段结构,数据类型。在mongodb中,每一条数据记录之间是没有关系的,每一条记录称为文档,一个文档就是一条 json字符串。在mongodb中,没有表的概念,只有集合(collection),也就是这些文档集合在一起。mongodb在json数据格式的基础上增加了一些数据类型(对象id,内嵌文档,二进制数据,js代码)

    2.1.1.mongodb简介

    mongodb支持索引,提供唯一索引、复合索引、地理空间索引,以及全文索引。 mongodb支持聚合查询(统计与分组) mongodb不支持join查询与事务(不适合关系型数据管理)

    2.1.2.文档id

    mongodb文档id: 对象_id用来作为文档的唯一标识,每个文档都必须有一个_id,objectId是默认id数据类型,它可以实现多台服务器全局唯一。 mongodb客户端可以自动创建id。 所以mongodb作为分布式数据库非常方便,适合数量数据存取。

    2.2.mongodb安装

    下载: mongodb官方网站:https://mongodb.com mongodb下载页:https://www.mongodb.org/download,下载相应的版本。

    2.2.1.图形化管理工具

    安装说明: 下载地址:https://www.mongodb.com/download-center/compass windows的安装版本已经安装了该工具 输入以下路径和端口进行连接 :

    mongodb://192.168.1.2:27017
    2.3.pymongo安装

    pymongo是mongdb的python驱动。安装:

    pip install pymongo

    2.4.CURD操作

    创建客户端

    client = pymongo.MongoClient("localhost", 27017) # 数据库名为blog db = client.blog

    CURD:

    db.users # 代表users这个集合 db.users.insert db.users.update db.users.find db.users.delete_one

    示例代码:

    # -*- coding=utf-8 -*- import pymongo client = pymongo.MongoClient("192.168.1.10", 27017) # 数据库名为blog db = client.blog # 插入数据 # 两条user信息结构相同,但是一条网站信息结构不一样 # 对于mongodb来讲,每一条之间都是完全独立的文档 users = [ {"username":"luxp", "sex":"man", "age":16}, {"username":"lxp", "sex":"man", "age":28}, {"web_url":"python-xp.com", "type":"技术类","company":"平哥编程"}] # 使用insert插入一条记录 # users自动创建 # insert_one ''' db.users.insert_one(users[0]) ''' # 一次性插入多个记录 # insert_many ''' res = db.users.insert_many(users) ''' # 查找数据 # 找到用户名为luxp的用户 # mongodb使用json格式来表示查询条件 # 在python客户端中以字典提供查询条件 # {"username":"luxp"} # {"username":"lxp", "age":28} # 正则匹配 {"username":"/xp/"} ''' user = db.users.find_one({"username":"luxp"}) user = db.users.find({"username":"luxp"}) ''' # 根据 _id 查q from bson import ObjectId id = "" ''' id = ObjectId(id) user = db.users.find_one({"_id":id}) ''' # # 修改 # update_one # update_many ''' user = db.users.find_one({"username":"luxp"}) user['age'] = 30 user['sex'] = "woman" res = db.users.update({"_id":user['_id']}, user) ''' # 删除 # 删除web_url这项 # delete_many - 删除多条 ''' res = db.users.delete_one({"web_url":"python-xp.com"}) res.deleted_count res.raw_result ''' ''' res = db.users.delete_many({"age":{"$gt":20}}) '''

    三、课程小结

    01 mongodb特点02 mongodb安装管理03 pymongo模块04 CURD
    Processed: 0.010, SQL: 9