MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON)。
PyMongo
Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接。
安装
# 直接安装可能会timeout,以下命令分分钟安装成功
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=100 pymongo
创建数据库
创建一个数据库
创建数据库需要使用 MongoClient 对象,并且指定连接的 URL 地址和要创建的数据库名。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 创建连接
mydb = myclient["test"] # 进入数据库
注意: 在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。
判断数据库是否已存在
我们可以读取 MongoDB 中的所有数据库,并判断指定的数据库是否存在:
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
dblist = myclient.list_database_names()
# dblist = myclient.database_names() database_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_database_names()。
if "test" in dblist:
print("数据库已存在!")
创建集合
MongoDB 中的集合类似 SQL 的表。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["test"]
mycol = mydb["sites"]
# 注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
判断集合是否已存在
我们可以读取 MongoDB 数据库中的所有集合,并判断指定的集合是否存在:
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient['test']
collist = mydb. list_collection_names()
# collist = mydb.collection_names() 注意:collection_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_collection_names()。
if "sites" in collist: # 判断 sites 集合是否存在
print("集合已存在!")
增删改查
import pymongo
my_client = pymongo.MongoClient('mongodb://localhost:27017/')
my_db = my_client['test']
my_col = my_db["sites"]
my_col.insert({"name":"zhangsan","age":18}) # 增
my_col.find({}) # 查
my_col.update({"name":"zhangsan"},{"$set":{"name":"lisi"}}) # 改 把zhangsan的名字改成李四
my_col.find({}) # 查
my_col.remove({}) # 清空集合
my_col.drop() # 删除集合
网友评论