带DBRef字段的MongoDB分片键?

带DBRef字段的MongoDB分片键?,mongodb,mongodb-query,data-collection,Mongodb,Mongodb Query,Data Collection,我有一个集合,其中包含根文档的DBREF。我有数以万计的文档链接到数据集中的单个根文档。 这就是为什么我选择不嵌套根文档的数据 Data Collection: _id : Auto-Created ID ts : TimeStamp field_1 : Whatever ... field_n : Whatever root : DBRef "Root" Document Collection: _id: Filename (uni

我有一个集合,其中包含根文档的DBREF。我有数以万计的文档链接到数据集中的单个根文档。 这就是为什么我选择不嵌套根文档的数据

Data Collection:
    _id : Auto-Created ID
    ts : TimeStamp 
    field_1 : Whatever
    ...
    field_n : Whatever 
    root : DBRef

"Root" Document Collection:
    _id: Filename (unique)
    field_1 : Whatever
    ...
    field_n : Whatever 
我认为分割我的收藏的最好方法是使用
ts
root.\u id
字段作为复合键


可能吗?如果不是,最好的解决方案是什么?只需将
root.\u id
字段复制到数据采集中的正常字段中即可

为了回答我自己的问题,以下是我的发现:

显然,这是不可能的,因为在后续查询中必须在客户端检索所有DBREF

我接受了一个新字段
sh_key
,它是在应用程序端导入数据时动态创建的。新字段将保存“复合分片键”的值


该值是根的连接。_id值以及
ts的小时数,以
{root._id}:{hour of ts}

的方式,回答我自己的问题,下面是我发现的:

显然,这是不可能的,因为在后续查询中必须在客户端检索所有DBREF

我接受了一个新字段
sh_key
,它是在应用程序端导入数据时动态创建的。新字段将保存“复合分片键”的值

该值是
root.\u id
值以及
ts
的小时数的串联,其方式为
{root.\u id}:{hour of ts}