pymongdb入门

时间:2023-03-09 09:47:57
pymongdb入门

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() 删除索引