Pymongo入门
安装
pip install pymongo
连接
实际就是实例化一个客户端对象,然后客户端对象中指定一个库作为库对象,库对象中的集合对象就是之后常用来执行操作的对象
'''
假设mongdb中存在库abc,其中有集合inventory
连接数据库的用户名和密码:root,123456
'''
import pymongo
username = 'root'
password = '123456'
port = '27017'
host = f'mongdb://{username}:{password}@localhost:{port}'
client = pymongo.MongoClient(host=host) # 实例化客户端进行连接
db = client["abc"] # 获取指定库对象
collection = db["inventory"] # 获取指定集合对象
库操作
| 方法 |
注释 |
| create_collection() |
创建集合 |
| drop_collection() |
删除集合 |
| collection_names() |
集合名称列表 |
集合操作
CRUD
查找
| 方法 |
注释 |
| find() |
查询一个或多个文档,返回的是pymongo.cursor.Cursor对象(可以认为是一个字典集合) |
| find_one() |
查询一个文档,返回的是一个字典 |
查询的键值对参数与实际在mongoDB客户端中使用基本一致,注意在使用条件操作符是需要加引号,比如:\(gt,\)regex
例子
...
result = collection.find({'qty':'$gt':25.0}) # $gt是条件操作,记得加引号
for res in result:
print(res)
result = collection.find_one({'qty':'$gt':25.0}) # 只返回查询到的第一个结果
Cursor对象常用方法
| 方法 |
注释 |
| limit() |
限制结果个数 |
| max()/min() |
求最大/最小结果 |
| skip() |
跳过指定个数结果后的结果集合 |
| sort() |
排序;diresction:pymongo.ASCENDING(递增),pymongo.DESCENDING(递减) |
插入
| 方法 |
注释 |
| insert_one() |
插入一个文档 |
| insert_many() |
插入多个文档,第一个参数是文档列表 |
...
result = collection.insert_one({'qty':28.0})
result = collection.insert_many([{'qty':num} for num in range(10)])
print(result.acknowledged) # 为True则说明插入成功
更新
| 方法 |
注释 |
| update_one() |
更新一个文档中指定字段的值 |
| update_many() |
更新多个文档中指定字段的值 |
| find_one_and_update() |
找到一个文档并更新指点字段的值 |
| repalce_one() |
替换一个文档所有字段的值 |
| find_one_and_replace() |
找到一个文档替换所有字段的值 |
注意update和replace的区别
...
result = collection.update_one({'qty':7},{'$set':{'qty':11}})
# 多留意result.raw_result和result.modified
删除
| 方法 |
注释 |
| delete_one() |
删除一个文档 |
| delete_many() |
删除多个文档 |
| find_one_and_delete() |
找到一个文档并删除 |
| drop() |
删除整个集合 |
索引
| 方法 |
注释 |
| create_index() |
创建一个索引 |
| create_indexes() |
创建多个索引 |
| list_indexes() |
获取集合中的所有索引 |
| drop_indexes() |
删除索引 |