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