1. 首页
  2. IT资讯

Python 数据库骚操作 — MongoDB

●  前言

●  MongoDB GUI 工具
●  PyMongo(同步)
●  Motor(异步)

●  后记

前言

最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,这里介绍 MongoDB 的两款操作库,走起!!

MongoDB GUI 工具

首先介绍一款 MongoDB 的 GUI 工具 Robo 3T,初学 MongoDB 用这个来查看数据真的很爽。可以即时看到数据的增删改查,不用操作命令行来查看。

37790004bf23d7e07bf0981bb46d7b991903d173

操作界面图

PyMongo(同步)

PyMongo 是一个同步操作的数据存储库。可能大家都对 PyMongo 比较熟悉了,这里就简单介绍它的增删改查等操作。

连接

# 普通连接

client= MongoClient('localhost',27017)

client= MongoClient('mongodb://localhost:27017/')

#

# 密码连接

client= MongoClient('mongodb://username:password@localhost:27017/dbname')

db= client.zfdb

# db = client['zfdb']

test= db.test

# 增加一条记录

person = {'name':'zone','sex':'boy'}

person_id = test.insert_one(person).inserted_id

print(person_id)

# 批量插入

persons = [{'name':'zone','sex':'boy'}, {'name':'zone1','sex':'boy1'}]

result = test.insert_many(persons)

print(result.inserted_ids)

# 删除单条记录

result1 = test.delete_one({'name':'zone'})

pprint.pprint(result1)

# 批量删除

result1 = test.delete_many({'name':'zone'})

pprint.pprint(result1)

# 更新单条记录

res = test.update_one({'name':'zone'}, {'$set': {'sex':'girl girl'}})

print(res.matched_count)

# 更新多条记录

test.update_many({'name':'zone'}, {'$set': {'sex':'girl girl'}})

# 查找多条记录

pprint.pprint(test.find())

# 添加查找条件

pprint.pprint(test.find({"sex":"boy"}).sort("name"))

聚合

如果你是我的老读者,那么你肯定知道我之前的骚操作,就是用爬虫爬去数据之后,用聚合统计结合可视化图表进行数据展示。

aggs = [

{"$match": {"$or": [{"field1": {"$regex":"regex_str"}}, {"field2": {"$regex":"regex_str"}}]}},# 正则匹配字段

{"$project": {"field3":1,"field4":1}},# 筛选字段

{"$group": {"_id": {"field3":"$field3","field4":"$field4"},"count": {"$sum": 1}}},# 聚合操作

]

result = test.aggregate(pipeline=aggs)

例子:以分组的方式统计 sex 这个关键词出现的次数,说白了就是统计有多少个男性,多少个女性。

test.aggregate([{'$group': {'_id''$sex''weight': {'$sum'1}}}])

聚合效果图:(秋招季,用Python分析深圳程序员工资有多高?
)文章配图)

24173ee40aa96ba5427bf6974122ea5957708918

●  Motor(异步)
●  后记

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/200418.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code