1

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

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 

我认为对我的集合进行分片的最佳方法是使用字段tsroot._id作为复合键。

那可能吗?如果没有,最好的解决方案是什么?只需将该字段复制root._id到数据集合中的普通字段中?

4

1 回答 1

0

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

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

我已经摄取了一个sh_key在应用程序端导入数据时即时创建的新字段。新字段将保存“复合分片键”的值。

该值是该root._id值以及 的 小时 的ts串联{root._id}:{hour of ts}

于 2016-09-26T13:14:10.257 回答