我能否只是连接到 MongoDB 服务器就创建一个新的数据库,还是有其他使用 Python 创建它的方式?如果有,该如何实现?
这是Mongodb 3.4版本:
from pymongo import MongoClient
client = MongoClient()
db = client.primer
coll = db.dataset
只有在尝试编写文档时,数据库和集合才会被创建。
针对 pymongo==4.3.3 版本:
from pymongo import MongoClient
client = MongoClient()
print(client.list_database_names())
db = client["new_db"]
collection = db["new_collection"]
print( db.list_collection_names())
只有在尝试写入文档时,数据库和集合才会被创建。
需要创建一个集合,而不插入文档,以便能够先设置验证器。
幸运的是,pymongo数据库对象定义了create_collection方法:
create_collection(name, codec_options=None, read_preference=None, write_concern=None, read_concern=None, session=None, **kwargs)
在此数据库中创建新的集合。
通常情况下,集合的创建是自动完成的。仅应使用此方法来指定创建选项。如果集合已经存在,则会引发CollectionInvalid异常。
...
从版本3.11开始更改:现在支持MongoDB 4.4+中的多文档事务内部使用此方法。
从版本3.6开始更改:添加了session参数。
从版本3.4开始更改:添加了collation选项。
从版本3.0开始更改:添加了codec_options、read_preference和write_concern选项。
从版本2.2开始更改:删除了已弃用的参数:options