创建和管理集合
创建集合
- 执行db.createCollection(name, options)创建集合。
db.createCollection(<name>, { capped: <boolean>, autoIndexId: <boolean>, size: <number>, max: <number>, storageEngine: <document>, validator: <document>, validationLevel: <string>, validationAction: <string>, indexOptionDefaults: <document>, viewOn: <string>, pipeline: <pipeline>, collation: <document>, writeConcern: <document>}
表1 参数说明 字段
类型
说明
apped
boolean
可选的,如果要创建一个固定集合,该值为true,如果该值为ture,需要同时设置size字段。
autoIndexId
boolean
如果指定为false,表示禁止自动在_id字段创建索引。
size
number
可选,对于固定集合,指定集合的最大大小。
max
number
可选,对于固定集合,指定集合存储的最大的文档数。
更多详细参数说明请参考官方文档。
回显信息如下表示创建成功。
{ "ok" : 1 }
- 为集合中插入一条数据。
db.coll.insert({"name": "sample"})
- 查看已有集合。
show collections
- 删除集合。
db.coll.drop()
创建固定集合
固定集合是指那些集合的大小或者文档数有最大值,方式集合的大小超过特定值,当集合的大小或者数量超过最大值后,集合的最早存储的值会被自动删除掉。
如下命令创建了一个集合,最大值是5MB,文档数量最多为5000。
db.createCollection("log", { capped : true, size : 5242880, max : 5000 } )
创建分片集合
在DDS集群架构中,可以创建分片来充分利用数据库性能。创建分片的规范及建议请参见分片设计规范。
- 使数据库可分片。
sh.enableSharding("info")
- 创建分片表,并指定分片键。如下为info数据库的fruit集合分片,且分片键是"id"。
sh.shardCollection("info.fruit", {"_id": "hashed"})
DDS分片集群支持两种分片策略:
- 范围分片,支持基于Shard Key的范围查询。
- 哈希分片,能够将写入均衡分布到各个Shard。
删除集合
执行db.collection_name.drop()删除集合。