MongoDB\Database::createCollection()
定义
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
:1
MongoDB\Operation\CreateCollection::NO_PADDING
:2
默认值为
1
。MongoDB 3.0及更高版本忽略
usePowerOf2Sizes
标志。 有关更多信息,请参阅collMod和db.createCollection() 。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命令引用