📜  MongoDB 和Python(1)

📅  最后修改于: 2023-12-03 15:03:01.818000             🧑  作者: Mango

MongoDB 和 Python


简介

MongoDB 是一款流行的文档型 NoSQL 数据库,它使用类似 JSON 的文档数据结构存储数据,具有高性能、可拓展、灵活等优点,在 Web 应用、大数据、物联网等领域都得到广泛地应用。

Python 是一种高级编程语言,具有简洁、易读、易学的特点,同时也是科学计算、机器学习、Web 开发等多个领域的首选语言。

结合 MongoDB 和 Python,可以发挥出更强大的数据处理能力,实现高效的数据存储、分析和可视化。

MongoDB 和 Python 的基本使用
安装和配置

要使用 MongoDB 和 Python,需要分别安装 MongoDB 和 Python 的解释器。在安装 MongoDB 后,需要启动 MongoDB 服务:

sudo service mongod start

Python 中操作 MongoDB 需要使用 PyMongo 库:

pip install pymongo
连接数据库

连接 MongoDB 数据库需要指定服务器地址、数据库名称和认证信息,如下所示:

import pymongo

# 连接数据库
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['mydb']
# 认证信息
db.authenticate(name='admin', password='123456')
插入文档

插入文档需要指定集合名称,然后调用 insert_one()insert_many() 方法:

# 插入一个文档
col = db['mycol']
doc = {'name': 'Alice', 'age': 20}
col.insert_one(doc)

# 插入多个文档
docs = [{'name': 'Bob', 'age': 25}, {'name': 'Charlie', 'age': 30}]
col.insert_many(docs)
查询文档

查询文档需要指定集合名称,然后调用 find() 方法:

# 查询全部文档
for doc in col.find():
    print(doc)

# 根据条件查询
result = col.find({'age': 25})
for doc in result:
    print(doc)
更新文档

更新文档需要指定集合名称,然后调用 update_one()update_many() 方法:

# 更新一个文档
col.update_one({'name': 'Alice'}, {'$set': {'age': 21}})

# 更新多个文档
col.update_many({'age': {'$lt': 25}}, {'$set': {'age': 26}})
删除文档

删除文档需要指定集合名称,然后调用 delete_one()delete_many() 方法:

# 删除一个文档
col.delete_one({'name': 'Charlie'})

# 删除多个文档
col.delete_many({'age': {'$gte': 30}})
聚合查询

MongoDB 支持强大的聚合查询功能,可以进行分组、排序、合并等操作。下面以根据年龄分组查询人数为例:

pipeline = [
    {'$group': {'_id': '$age', 'count': {'$sum': 1}}},
    {'$sort': {'_id': 1}}
]
result = col.aggregate(pipeline)
for doc in result:
    print(doc)
结语

Python 和 MongoDB 的结合可以实现多种场景下的数据处理需求。本文仅介绍了 MongoDB 和 PyMongo 的基本使用,更多高级应用请参考官方文档。