在MongoDB中,创建数据库不需要像传统SQL那样发出专门的“CREATE DATABASE”指令,而是在连接时指定数据库名称,并在插入数据后才真正生效。下面介绍如何使用Python及PyMongo来创建和验证数据库的存在。
1. 连接到MongoDB
使用pymongo.MongoClient
来创建与MongoDB的连接,通常本地主机地址为mongodb://localhost:27017/
,端口默认为27017:
import pymongo
# 创建MongoClient对象
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
# 指定数据库名称(mydatabase),尚未真正创建
mydb = myclient["mydatabase"]
这段代码会“假设”存在一个名为mydatabase
的数据库,但MongoDB只有在数据库中创建集合并插入至少一个文档后才会真实建立该数据库。
2. MongoDB中“延迟创建”数据库的特点
与传统SQL不同,MongoDB不会在你仅仅声明一个数据库名时就实际创建该数据库。只有当你为数据库添加集合(相当于表)并插入文档(相当于记录)后,它才“落地生根”。
3. 如何检查数据库是否真实存在
如果尚未往mydatabase
里写任何数据,下面的方法会找不到这个数据库:
# 列出所有已存在的数据库名
dblist = myclient.list_database_names()
print(dblist)
# 检查 mydatabase 是否在其中
if "mydatabase" in dblist:
print("数据库 mydatabase 已存在。")
else:
print("数据库 mydatabase 尚未创建。")
由于MongoDB的“延迟创建”特性,要想看到mydatabase
出现在列表里,必须先向它写入至少一条记录。
小结及注意
- 要创建数据库,只需在
MongoClient
上指定名称,但需插入文档才会真正建立。 - 可以通过
list_database_names()
来查看系统中的所有数据库。 - 如需验证是否存在,先插入数据再进行
mydatabase
是否在列表中的判断。
通过以上步骤,你已经掌握了在Python里使用PyMongo创建并检查MongoDB数据库的关键点。后续你还需要学习如何创建集合与插入文档,让数据库正式落地。