使用复合索引对Mongo集合进行分片

时间:2016-08-18 14:41:51

标签: c# mongodb

我有一个我需要分片的mongo集合。我很难理解文档;我想过以两种方式做这件事。

我的医生:

public class MyShardedDocument
{
        public int DocID;
        public int AnotherIDThatMatters;
}

方法1:

  1. 添加名为ShardKey = DocID.ToString() + AnotherIDThatMatters.ToString()
  2. 的媒体资源
  3. ShardKey
  4. 上添加索引
  5. sh.shardCollection( "myDB.myCollection", { "ShardKey ": 1 })
  6. 方法2:

    1. DocIDAnotherIDThatMatters
    2. 上添加复合索引
    3. sh.shardCollection( "myDB.myCollection", { "DocID": 1,"AnotherIDThatMatters": 1 })
    4. 这两个都有效吗?

1 个答案:

答案 0 :(得分:1)

  1. 此解决方案继续执行c#代码,如果任何文档将通过除应用程序之外的其他输入添加到集合中,则分片密钥数据将失败。

  2. 这种方法是通用的,对文档中的数据进行中继(无需外部处理),无论插入的方式如何,都会覆盖每个插入的文档。