如何创建和管理集合 创建固定集合 固定集合是指那些集合的大小或者文档数有最大值,当集合的大小或者数量超过最大值后, 集合的最早存储的值会被自动删除掉 。 如下命令创建了一个集合,最大值是50MB,文档数量最多为500000。 db.createCollection("bookmark", { capped : true, size : 52428800, max : 500000 } ) 创建分片集合 在文档数据库服务分片集群中,要想使用分片功能,首先要创建分片集合。 主要步骤是: 1. 首先创建分片键索引。分片集合必须有分片键索引。 db.collection.createIndex({ : 1 }, {name: }) 例如: db.users.createIndex({ "userid": 1 }, {name: "userid1"})//这里的1表示指定升序索引 2. 然后使用 sh.enableSharding()启用分片功能。 sh.enableSharding(" ") 3. 再用 sh.shardCollection()将集合分片。 sh.shardCollection(" . ", { : 1 }, { } ) 例如: sh.shardCollection("mydatabase.users", { "userid" : 1 }, { "requireIndex" : true } ) 这里我们使用 userid作为分片键。 4. 如果想分割已存在的集合,可以使用 shardCollection时的 splitAt选项。 sh.shardCollection("mydatabase.largecollection", { score : 1 }, { splitAt : { score : 1000 } } ) 这里我们指定在 score 1000 处分割集合,表示将 "score" 字段的值小于或等于 1000 的文档分配到一个分片中,而将 "score" 字段的值大于 1000 的文档分配到另一个分片中 。 通过上述步骤就可以创建了分片集合。文档数据库服务会自动将集合数据分布到各个分片上。 文档数据库服务分片集群支持两种分片策略: 范围分片,支持基于Shard Key的范围查询。 哈希分片,能够将写入均衡分布到各个Shard。