定义
MongoDB\Database::createCollection()显式创建collection。
function createCollection( string $collectionName, array $options = [] ): array|object 当您首次在命令中引用集合时,例如将文档插入到新集合中时,MongoDB 会隐式创建集合。 您还可以使用
MongoDB\Database::createCollection()方法或在 中使用 db.createCollection() 来显式创建具有特定选项的集合。MongoDBshell
参数
$collectionName: 细绳- 要创建的collection的名称。
$options: array指定所需选项的数组。
注意
并非所有选项在所有版本的 MongoDB 上都可用。 有关兼容性注意事项,请参阅 MongoDB 手册中的创建命令参考。
名称类型说明autoIndexId
布尔
指定
false可禁用在_id字段上自动创建索引的功能。重要提示:对于副本集,请勿将
autoIndexId设立为false。自 1.4 版起已弃用: 自 MongoDB 3.2 起已弃用此选项。 从 MongoDB 4.0 开始,在创建复制集合(即任何 mongod 模式下位于
local数据库之外的集合)时,此选项不能为false。固定大小
布尔
要创建固定大小集合,请指定
true。 如果指定true,则还必须在size选项中设置最大大小。changeStreamPreAndPostImages
文档
用于配置对 变更流 中的前映像和后映像的支持。 有关更多信息,请参阅创建命令文档。
此选项从 MongoDB 6.0 开始可用,如果为较旧的服务器版本指定,将导致执行时出现异常。
1.13 版本中的新增功能。
聚集索引
文档
排序规则
数组|对象
comment
混合
加密字段
文档
描述可查询加密的Queryable Encryption字段的文档。 如果省略,则会查阅
autoEncryption驱动程序选项中的encryptedFieldsMap选项。 有关更多信息,请参阅 MongoDB 手册中的字段加密和可查询性。此选项从 MongoDB 7.0 开始可用,如果为较旧的服务器版本指定,将导致执行时出现异常。
1.13 版本中的新增功能。
expireAfterSeconds
整型
flags
整型
仅适用于 MMAPv1 storage engine,用于设置
usePowerOf2Sizes和noPadding标志。该库提供了常量,您可以将这些常量与按位 OR操作符结合使用,以设立标志值:
MongoDB\Operation\CreateCollection::USE_POWER_OF_2_SIZES:1MongoDB\Operation\CreateCollection::NO_PADDING:2
默认值为
1。MongoDB 3.0及更高版本忽略
usePowerOf2Sizes标志。 有关更多信息,请参阅collMod和db.createCollection() 。已弃用:此选项已弃用,并将在 v2.0PHP库发布.要学习;了解有关从 MMAPv1 存储引擎升级到 Wired Tiger 的更多信息,请参阅服务器手册中的“将自管理独立实例更改为WiredTiger”指南。
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
写入用于操作的关注。 默认为数据库的写关注。
Return Values
包含创建命令的结果文档的数组或对象。
错误/异常
MongoDB\Exception\UnsupportedException,如果所选服务器使用了选项但不支持选项(例如collation、readConcern、writeConcern)。
MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。
MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。
例子
以下示例使用文档验证条件在test数据库中创建users集合:
$db = (new MongoDB\Client)->test; $result = $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]); var_dump($result);
而输出将类似如下所示:
object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) } }
另请参阅
MongoDB 手册中的create命令引用