📅  最后修改于: 2023-12-03 15:34:02.443000             🧑  作者: Mango
MongoDB是一个开源的,面向文档存储的NoSQL数据库。它使用JSON格式的BSON存储数据,具有高性能和可扩展性的特点,适合处理大量的非结构化数据以及需要高度灵活性的应用场景。
Python提供了pymongo这个MongoDB的官方驱动程序,我们可以使用Python编写代码与MongoDB进行交互和操作。
本文将介绍MongoDB的安装、pymongo的安装、MongoDB的连接、数据库和集合的创建、插入、查询、更新、删除等操作的示例代码。
在使用MongoDB之前,需要先安装MongoDB,不同操作系统的安装方法不同,具体可以参照MongoDB的官方文档进行安装。
在安装MongoDB之后,需要安装pymongo,可以使用pip进行安装:
$ pip install pymongo
使用pymongo连接MongoDB非常简单,只需要使用mongo()函数即可:
import pymongo
# 建立MongoDB的连接
client = pymongo.MongoClient('mongodb://localhost:27017')
# 获取数据库列表
db_list = client.list_database_names()
print(db_list)
连接MongoDB需要指定MongoDB的地址及端口号,这里使用了localhost
默认的端口号27017
。
连接MongoDB之后,我们可以创建自己的数据库和集合,具体代码如下:
# 创建数据库
mydb = client['mydatabase']
# 获取集合列表
coll_list = mydb.list_collection_names()
print(coll_list)
# 创建集合
mycol = mydb['customers']
这里我们创建了一个名为mydatabase
的数据库,以及一个名为customers
的集合。
接下来,我们将一些数据插入到customers
集合中:
# 插入一条数据
data = {'name': 'John', 'address': 'Highway 37'}
x = mycol.insert_one(data)
print(x.inserted_id)
# 插入多条数据
data_list = [
{'name': 'Amy', 'address': 'Apple st 652'},
{'name': 'Hannah', 'address': 'Mountain 21'},
{'name': 'Michael', 'address': 'Valley 345'},
{'name': 'Sandy', 'address': 'Ocean blvd 2'},
{'name': 'Betty', 'address': 'Green Grass 1'},
{'name': 'Richard', 'address': 'Sky st 331'}
]
x = mycol.insert_many(data_list)
print(x.inserted_ids)
这里我们使用insert_one()
和insert_many()
方法进行数据插入。
完成数据插入之后,我们可以使用find()
方法查询集合中的数据:
# 查询集合中的第一条数据
x = mycol.find_one()
print(x)
# 查询集合中所有的数据
for x in mycol.find():
print(x)
# 只查询特定字段的数据
for x in mycol.find({}, {'_id': 0, 'name': 1, 'address': 1}):
print(x)
这里我们查询了集合中的所有数据,并且可以指定只查询特定字段的数据。
可以使用update_one()
和update_many()
方法更新数据:
# 更新第一条数据
myquery = {'address': 'Valley 345'}
newvalue = {'$set': {'address': 'Canyon 123'}}
x = mycol.update_one(myquery, newvalue)
print(x.modified_count)
# 更新所有数据
myquery = {}
newvalue = {'$set': {'address': 'Canyon 123'}}
x = mycol.update_many(myquery, newvalue)
print(x.modified_count)
这里我们将集合中地址为Valley 345
的数据的地址更新为Canyon 123
。
最后是数据删除,我们可以使用delete_one()
和delete_many()
方法删除数据:
# 删除第一条数据
myquery = {'address': 'Canyon 123'}
x = mycol.delete_one(myquery)
print(x.deleted_count)
# 删除所有数据
myquery = {}
x = mycol.delete_many(myquery)
print(x.deleted_count)
这里我们删除了集合中地址为Canyon 123
的数据。
本文介绍了MongoDB的安装、pymongo的安装、MongoDB的连接、数据库和集合的创建、插入、查询、更新、删除等操作的示例代码,希望能够帮助读者更好的了解和使用MongoDB和pymongo。