Python数据持久化-MongoDB篇

2018年7月6日笔记
下文中的操作都是使用python操作mongoDB,所以前提是必须安装python和mongoDB。

1. 安装pymongo

在cmd或者PowerShell中运行命令:pip install pymongo

2. 插入数据

2.1 插入一条数据

引入pymongo库中的MongoClient类,使用该类的初始化方法实例化一个对象赋值给conn
conn.myschool为数据库school,将其赋值给变量db
db.students为数据库school中的students集合,将其赋值给变量students
定义一个数据类型为字典dict的变量zhangsan
往数据库中的students集合中插入zhangsan的信息文档,students.insert_one(zhangsan)

from pymongo import MongoClient

if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.myschool
    students = db.students
    zhangsan = dict(
        name="zhangsan",
        age=20,
        sex="boy",
        contact=dict(
            email1="abc@qq.com",
            email2="123@qq.com"
        )
    )
    students.insert_one(zhangsan)

2.2 插入多条数据

from pymongo import MongoClient

if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.myschool
    students = db.students
    lisi = dict(
        name = 'lisi',
        habit = dict(
            habit1 = 'eat',
            habit2 = 'sleep'
        )
    )
    wangwu = dict(
        name = 'wangwu',
        age = 20,
        sex = 'boy'
    )
    students.insert_many([lisi,wangwu])

2.3 使用循环创建3个班,并随机添加10个学生

from pymongo import MongoClient
from random import randint
if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.school
    hobby_list = ['sing','drawing','run','football','basketball']
    grade_list = ['grade_1_1','grade_1_2','grade_1_3']
    for grade in grade_list:
        collection = db.get_collection(grade)
        collection.drop()
        for i in range(10):
            student = dict(
                name = "zhangsan" + str(i),
                age = randint(1,9),
                sex = "男" if randint(0,1) else "女",
                hobby = hobby_list[:randint(0,5)]
            )
            collection.insert_one(student)

3.查询数据

在进行查询的时候,必须要先执行2-3节中的代码,确保school数据库中插入3个班集合

3.1 查询集合中全部数据

示例代码如下:

from pymongo import MongoClient

if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.school
    students = db.grade_1_3
    cursor = students.find()
    for i in cursor:
        print(i)
图片.png-57.9kB

3.2 过滤查询

查询之前先定义一个数据类型为字典dict的变量filter
filter示例,查询年龄等于4的文档:filter = {"age":4}
代码示例如下,代码能够成功运行,具体的数据库名和集合名要根据自己电脑中的MongoDB情况进行更改:

from pymongo import MongoClient

if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.school
    students = db.grade_1_3
    filter = {"age": 4}
    cursor = students.find(filter)
    for i in cursor:
        print(i)

filter中操作符及其含义


图片.png-131.5kB
3.2.1 $in操作符示例:
from pymongo import MongoClient

if __name__ == '__main__':
    conn = MongoClient('localhost')
    db = conn.school
    students = db.grade_1_3
    filter = {"name": {'$in':['zhangsan2','zhangsan3']}}
    cursor = students.find(filter)
    for i in cursor:
        print(i)
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中使用 MongoDB 数据库进行数据持久可以使用 PyMongo 库。以下是使用 PyMongo 进行 MongoDB 数据持久的基本步骤: 1. 安装 PyMongo 库:可以使用 pip 命令进行安装。 ``` pip install pymongo ``` 2. 连接 MongoDB 数据库:使用 MongoClient 类进行连接。 ```python from pymongo import MongoClient client = MongoClient() # 默认连接本机 MongoDB 服务 ``` 3. 选择数据库:使用 database 属性选择数据库。 ```python db = client.mydatabase # 选择 mydatabase 数据库 ``` 4. 选择集合:使用集合名称获取集合。 ```python collection = db.mycollection # 选择 mycollection 集合 ``` 5. 插入数据:使用 insert_one 或 insert_many 方法插入数据。 ```python # 插入单条数据 data = {"name": "Tom", "age": 20} result = collection.insert_one(data) # 插入多条数据 data_list = [{"name": "Tom", "age": 20}, {"name": "Jerry", "age": 25}] result = collection.insert_many(data_list) ``` 6. 查询数据:使用 find 方法查询数据。 ```python # 查询所有数据 result = collection.find() # 查询符合条件的数据 result = collection.find({"name": "Tom"}) ``` 7. 更新数据:使用 update_one 或 update_many 方法更新数据。 ```python # 更新单条数据 collection.update_one({"name": "Tom"}, {"$set": {"age": 22}}) # 更新多条数据 collection.update_many({"name": "Tom"}, {"$set": {"age": 22}}) ``` 8. 删除数据:使用 delete_one 或 delete_many 方法删除数据。 ```python # 删除单条数据 collection.delete_one({"name": "Tom"}) # 删除多条数据 collection.delete_many({"name": "Tom"}) ``` 以上就是使用 PyMongo 进行 MongoDB 数据持久的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值