首页 使用pymongo进行交互
文章
取消

使用pymongo进行交互

安装

拉包

1
pip install pymongo==3.7.2

API接口清单

Tutorial — PyMongo 4.3.3 documentation

使用

创建连接(MongoClient)

MongoClient是客户端代理对象,可用于执行增删改查、连接池

1
2
3
from pymongo import MongoClient
client = MongoClient(host=<host>, port=<port>)  # 创建链接
client.admin.authenticate(<user>, <password>)  # 验证用户
  • Error:’Collection’ object is not callable 是由于pymongo版本高于4.0引起的,解决办法:

    1
    2
    3
    4
    5
    6
    
    import pymongo
    client = pymongo.MongoClient(
    							host=<host>,
    							port=27017,
    							username=<user>,
    							password=<password>)
    

写入

insert_one

1
client.<dbname>.<tablename>.insert_one({<key: value>})

insert_many

1
2
3
4
5
client.<dbname>.<tablename>.insert_many([
{<key: value>},
{<key: value>}, 
...
])

查询

find_one

1
2
3
4
cursor = client.<dbname>.<tablename>.find_one(<conditions>)

# 获取查询结果
print(cursor["_id"], cursor[<column>], ...)

find

1
2
3
4
5
cursor = client.<dbname>.<tablename>.find(<conditions>)

# 获取查询结果
for one in cursor:
	print(one["_id"], one[<column>], ...)

修改

update_one

1
2
3
4
5
6
7
# 修改元素
client.<dbname>.<tablename>.update_one(
<conditions>, {"$set": <key: value>})

# 添加元素
client.<dbname>.<tablename>.update_one(
<conditions>, {"$push": <key: value>})

update_many

1
2
3
# 如果没有该元素就增加该元素,如果有该元素,则该元素elements+1
client.<dbname>.<tablename>.update_many(
<conditions>, {"$set": {"key": ["value"]}})

删除

delete_one

1
2
# 如果有多条记录,只会删除第一条
client.<dbname>.<tablename>.delete_one(<conditions>)

delete_many

1
2
3
4
5
# 删除符合条件的记录
client.<dbname>.<tablename>.delete_many(<conditions>)

# 清空表
client.<dbname>.<tablename>.delete_many({})

条件函数

切片

skip、limit:参数为数字

1
2
# 只获取第n条开始到第m条结束的数据
client.<dbname>.<tablename>.find({}).skip(n).limit(m)

去重

distinct:参数为字符串格式的字段名!!!

1
2
# 以column字段为准进行去重
client.<dbname>.<tablename>.distinct(<column>)

排序

sort:参数为列表,列表元素需要是元组类型!!!

1
2
# 以column字段为准降序排序
client.<dbname>.<tablename>.find().sort([(<column>, -1)])
本文由作者按照 CC BY 4.0 进行授权