在MongoDB中,无需显式创建集合。首次向集合插入文档时,集合会被自动创建。
但是,在某些情况下你可能需要显式创建集合,例如:
- 你想在创建集合时设置特定的存储引擎或分片键等选项。
- 确保在应用首次运行前集合已经存在。
- 进行测试时,你可能想先创建一个空集合。
你可以使用db.createCollection()方法显式创建集合。语法如下:
db.createCollection(name, options)
- name: 集合名称,必填。
- options: 可选参数,指定有关内存大小和索引的选项。
options可以指定以下字段:
- capped: 布尔值,若为true则创建固定大小集合。默认为false。
- autoIndexId: 布尔值,若为true则自动在_id字段创建索引。默认为true。
- size: 集合最大大小,Bytes,对capped集合必填。
- max: 集合最大文档数,对capped集合必填。
示例:
# 创建普通集合
db.createCollection("users")
# 创建带固定大小的集合
db.createCollection("logs", {capped: true, size: 100000, max: 10000})
# 创建集合时禁用_id索引
db.createCollection("records", {autoIndexId: false})
创建集合时指定合适的选项,可以大大改进集合的性能。例如使用capped集合存储日志数据,使用autoIndexId:false提高大批量插入速度等。