Python操作三大数据库 - MongoDB
程序员文章站
2022-04-10 23:46:57
...
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于我偶像龟叔 ,作者我偶像龟叔
1、pymongo安装
pip install pymongo
2、MongoClient连接(连接池)
MongoClient是MongoDB的客户端代理对象,可以用来执行增删查改操作,而且还内置了连接池。
=import pymongo
client = pymongo.MongoClient(host='localhost', port=27017) #建立连接池
3、创建数据库与集合
创建数据库与集合后,需要在集合插入数据,数据库与集合才会真正创建。
_db = client['test_database'] #创建数据库
_col = _db['test_collection'] #创建集合
4、添加数据
添加数据后,数据库与集合才是真正意义上的创建完成:
# 插入单条数据
data = {
"author": "Mike",
"tags": ["mongodb", "python", "pymongo"],
}
# 此处插入一条数据,打印结果数据库与集合都创建了
insert = _col.insert_one(data) # <pymongo.results.InsertOneResult object at 0x0000000003E99488>
_col_id = insert.inserted_id
print(client.list_database_names()) # 结果:['test_database']
print(_db.list_collection_names()) # 结果:['test_collection']
# 批量插入数据
many_data = [
{
"author": "Mike",
"tags": ["mongodb", "python", "pymongo"],
},
{
"author": "Eliot",
"tags": ["java", "docker", "Spring"],
}
]
insert_many = _col.insert_many(many_data) # <pymongo.results.InsertManyResult object at 0x0000000003E99408>
_col_ids = insert_many.inserted_ids
5、查找、修改、删除数据
示例代码如下:
# 查找单个集合
info = _col.find_one()
info_2 = _col.find_one({'author': 'Mike'}) #带条件
# 查找全部集合
infoAll = _col.find()
infoAll_2 = _col.find({'_id': _col_id}) #带条件
# -------------------------find end-----------------------
# 修改数据
where = {'author': 'Mike'}
update = {'$set': {'author': 'Mike_2'}}
_col.update_one(where, update)
_col.update_many(where, update)
# -------------------------update end-----------------------
# 删除数据
where = {'author': 'Mike'}
_col.delete_one(where) #删除条件单条数据
_col.delete_many(where) #删除条件多条数据
_col.delete_many({}) #删除所有数据
_col.drop() #删除集合
6、杂项
示例代码如下:
# 统计数量
count = _col.count_documents({}) #花括号条件为空
# 排序
sort = _col.find({}).sort('author')
7、索引
示例代码如下:
'''
索引
pymongo.ASCENDING : 1
pymongo.DESCENDING : -1
索引对排序的规则:
1、单键索引:排序规则可以是任意方向
2、复合索引:所有的键必须'全部相同'与'全部不相同'
该博客有很好的解释:https://blog.csdn.net/jerryJavaCoding/article/details/82317840
'''
_col.create_index([("a", pymongo.DESCENDING)])
_col.create_indexes({'a': pymongo.ASCENDING, 'b': pymongo.DESCENDING})
_col.drop_index('a')