MongoDB\Database::createCollection()
定义
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命令引用