欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python操作三大数据库 - MongoDB

程序员文章站 2022-04-10 23:46:57
...

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于我偶像龟叔 ,作者我偶像龟叔

Python操作三大数据库 - MongoDB

 

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')
相关标签: python 数据库