注册

详解MongoDB的create_collection()函数:创建一个新的集合

MongoDB create_collection() 函数详解

在 MongoDB 中,collection 相当于关系型数据库中的 table,在使用之前需要先创建,而 create_collection() 函数可以用来实现创建 MongoDB 中的集合。

函数定义

在官方文档中,create_collection() 函数的定义如下:

db.create_collection(name, **kwargs)

其中,name 是要创建的集合名称,**kwargs 参数是可选的,可以包含以下属性:

  • capped: 当值为 True 时,表示创建的集合是固定大小的,创建大小需要额外的参数: sizemax
  • size: 表示创建固定大小集合时的空间大小,单位为字节。
  • max: 表示固定大小集合中包含文档的最大数量。

create_collection() 函数成功返回时,将返回一个类似 pymongo.collection.Collection 的对象。

使用方法

下面是一个简单的命令行交互,展示如何创建集合的过程:

mongo
> use mydb
> db.createCollection("mycollection")
{ "ok" : 1 }

在 Python 代码中使用 create_collection() 函数,需要先导入 PyMongo 库,然后通过 MongoClient 连接 MongoDB,最后使用 create_collection() 函数创建集合。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydb"]
collection = db.create_collection("mycollection")

在创建固定大小集合时,可以使用以下代码片段指定大小和最大值:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client.test

if "mycappedcollection" not in db.list_collection_names():
    db.create_collection("mycappedcollection", capped=True, size=10000, max=5)

collection = db["mycappedcollection"]

实例说明

1. 简单创建集合

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydb"]
collection = db.create_collection("mycollection")

通过运行以上代码,将在 MongoDB 数据库 mydb 中创建一个名为 mycollection 的新集合。

2. 创建固定大小集合

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client.test

if "mycappedcollection" not in db.list_collection_names():
    db.create_collection("mycappedcollection", capped=True, size=10000, max=5)

collection = db["mycappedcollection"]

在该示例代码中,如果 MongoDB 数据库 test 中不存在 mycappedcollection 这个集合,则使用 create_collection() 函数创建这个集合,并设置了属性 capped=True 表示这是一个固定大小的集合,属性 size=10000 表示该固定大小集合的初始大小为 10000 字节,max=5 表示该固定大小集合中包含的文档数量不超过 5。最后,我们将返回的集合对象赋值给变量 collection,进而进行下一步操作。