使用DBRef字段的MongoDB Sharding密钥?

时间:2016-09-19 13:08:31

标签: mongodb mongodb-query data-collection

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

map.on('mousemove',function(e) {
    console.log(e);                 
    //....
});

我认为对我的收藏进行分片的最佳方法是使用字段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._id字段复制到数据集合中的普通字段中即可?

1 个答案:

答案 0 :(得分:0)

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

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

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

该值是root._id值以及ts的{​​{1}}小时的串联。