
# 创建和管理集合
写入/更新和删除命令的规范请参见[写入/更新命令](https://support.huaweicloud.com/devg-dds/dds_devg_0117.html)和[删除命令](https://support.huaweicloud.com/devg-dds/dds_devg_0118.html)。
#### 创建集合
1. 执行**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参数说明 
   | 字段          | 类型      | 说明                                                                                                                                               |
   |:---|:---|:---|
   | capped      | boolean | 可选的，如果要创建一个固定集合，该值为true，如果该值为ture，需要同时设置size字段。                                                                                                  |
   | autoIndexId | boolean | 如果指定为false，表示禁止自动在_id字段创建索引。                                                                                                                     |
   | size        | number  | 可选，对于固定集合，指定集合的最大大小。                                                                                                                             |
   | max         | number  | 可选，对于固定集合，指定集合存储的最大的文档数。 更多详细参数说明请参考[官方文档](https://docs.mongodb.com/v4.0/reference/method/db.createCollection/)。 |
      
   回显信息如下表示创建成功。
   ```
   { "ok" : 1 }
   ```
   
   
2. 为集合中插入一条数据。 
   **db.coll.insert({"name": "sample"})**
   
   
3. 查看已有集合。 
   **show collections**
   
   
4. 删除集合。 
   **db.coll.drop()**
   
   
 
#### 创建固定集合
固定集合是指那些集合的大小或者文档数有最大值，方式集合的大小超过特定值，当集合的大小或者数量超过最大值后，集合的最早存储的值会被自动删除掉。
如下命令创建了一个集合，最大值是5MB，文档数量最多为5000。
**db.createCollection("log", { capped : true, size : 5242880, max : 5000 } )**
#### 创建分片集合
在DDS集群架构中，可以创建分片来充分利用数据库性能。创建分片的规范及建议请参见[分片设计规范](https://support.huaweicloud.com/devg-dds/dds_taps_0002.html#dds_taps_0002__zh-cn_topic_0000001181226774_section23466306304)。
1. 使数据库可分片。 
   **sh.enableSharding("info")**
   
   
2. 创建分片表，并指定分片键。如下为info数据库的fruit集合分片，且分片键是"id"。 
   **sh.shardCollection("info.fruit", {"_id": "hashed"})**
   ![](https://support.huaweicloud.com/devg-dds/public_sys-resources/note_3.0-zh-cn.png)
   DDS分片集群支持两种分片策略：
   - 范围分片，支持基于Shard Key的范围查询。
   
   - 哈希分片，能够将写入均衡分布到各个Shard。
    
   
   
 
#### 删除集合
执行**db.collection_name.drop()**删除集合。
