定义
MongoDB\Database::createCollection()显式创建collection。
function createCollection( string $collectionName, array $options = [] ): void 当您首次在命令中引用集合时,例如将文档插入到新集合中时,MongoDB 会隐式创建集合。 您还可以使用
MongoDB\Database::createCollection()方法或在 中使用 db.createCollection() 来显式创建具有特定选项的集合。MongoDBshell
参数
$collectionName: 细绳- 要创建的collection的名称。
$options: array指定所需选项的数组。
注意
并非所有选项在所有版本的 MongoDB 上都可用。 有关兼容性注意事项,请参阅 MongoDB 手册中的创建命令参考。
名称类型说明固定大小
布尔
要创建固定大小集合,请指定
true。 如果指定true,则还必须在size选项中设置最大大小。changeStreamPreAndPostImages
文档
用于配置对 变更流 中的前映像和后映像的支持。 有关更多信息,请参阅创建命令文档。
此选项从 MongoDB 6.0 开始可用,如果为较旧的服务器版本指定,将导致执行时出现异常。
1.13 版本中的新增功能。
聚集索引
文档
排序规则
数组|对象
comment
混合
加密字段
文档
描述可查询加密的Queryable Encryption字段的文档。 如果省略,则会查阅
autoEncryption驱动程序选项中的encryptedFieldsMap选项。 有关更多信息,请参阅 MongoDB 手册中的字段加密和可查询性。此选项从 MongoDB 7.0 开始可用,如果为较旧的服务器版本指定,将导致执行时出现异常。
1.13 版本中的新增功能。
expireAfterSeconds
整型
indexOptionDefaults
数组|对象
允许用户在创建集合时指定索引的默认配置。
indexOptionDefaults选项接受storageEngine文档,该文档应采用以下形式:{ <storage-engine-name>: <options> } 创建索引时指定的storage engine配置在复制期间进行验证并记录到oplog中,以支持具有使用不同存储引擎的成员的副本集。
Max
整型
固定大小集合中允许的最大文档数。
size选项优先于此限制。 如果固定大小集合在达到最大文档数之前达到size限制,MongoDB 将删除旧文档。 如果您希望使用max限制,请确保collection所需的size限制足以包含最大数量的文档。maxTimeMS
整型
处理游标操作的累计时间限制(以毫秒为单位)。MongoDB 最早会在中断点之后中止操作。
管道
阵列
由聚合管道阶段组成的数组,将应用于
viewOn指定的集合或视图。 有关更多信息,请参阅创建命令文档。1.13 版本中的新增功能。
会话
与操作相关联的客户端会话。
1.3 版本中的新增功能。
size
整型
指定固定大小集合的最大大小(以字节为单位)。Once a capped collection reaches its maximum size, MongoDB removes the older documents to make space for the new documents.
size选项对于固定大小集合是必需的,对于其他集合则被忽略。引擎加密
数组|对象
仅适用于 WiredTiger 存储引擎。
允许用户在创建集合时针对每个集合指定存储引擎的配置。
storageEngine选项的值应采用以下形式:{ <storage-engine-name>: <options> } 创建集合时指定的storage engine配置在复制期间进行验证并记录到oplog中,以支持具有使用不同存储引擎的成员的副本集。
时间序列
数组|对象
typeMap
阵列
应用游标的类型映射,决定如何将BSON文档转换为PHP值。默认为数据库的类型映射。
这将用于返回的命令结果文档。
validationAction
字符串
确定是对无效文档执行
error,还是仅对违规行为warn,但允许插入无效文档。重要提示:文档验证仅适用于由
validationLevel确定的文档。validationAction说明"error"默认。 文档必须在写入之前通过验证。 否则,写入操作将失败。
"warn"文档不必通过验证。如果文档未通过验证,则写入操作将记录验证失败。
validationLevel
字符串
确定 MongoDB 在更新期间将验证规则应用于现有文档的严格程度。
validationLevel说明"off"不对插入或更新进行验证。
"strict"默认。 将验证规则应用于所有插入和所有更新。
"moderate"将验证规则应用于现有有效文档的插入和更新。请勿将规则应用于现有无效文档的更新。
验证器
数组|对象
viewOn
字符串
要从中创建视图的源集合或视图的名称。
该名称不是collection或视图的完整命名空间(即不包括数据库名称)。视图必须在与源collection或视图相同的数据库中创建。
1.13 版本中的新增功能。
writeConcern
写入用于操作的关注。 默认为数据库的写关注。
错误/异常
MongoDB\Exception\UnsupportedException,如果所选服务器使用了选项但不支持选项(例如collation、readConcern、writeConcern)。
MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。
MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。
例子
以下示例使用文档验证条件在test数据库中创建users集合:
$db = (new MongoDB\Client)->test; $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]);
另请参阅
MongoDB 手册中的create命令引用