复合_ID并使用MongoDB作为复合桶存储,通过C#

时间:2012-10-17 18:44:39

标签: mongodb database-design mongodb-.net-driver upsert database

我正在构建一个电子商务系统,该系统使用复合桶哈希来有效地对类似项目进行分组。在没有考虑为什么选择这个系统的情况下,可以说它解决了分布式电子商务系统面临的几个关键问题。

有11个桶,所有这些桶都代表不同的值。我们将这些字段称为A到K.第12个字段L是产品ID数组。可以将这一切都想象为叶级(L)是数据的层次结构。

我在MongoDB中运行了一些初始测试,我将这些数据存储为单独的文档。但是,这样做效率不高,因为给定的A到K集可能有很多L值,所以这些可以存储为数组。

这给了我两个选择:

  1. 插入无意义的_id文档ID,并在A-K上放置索引以确保唯一性。我已经对索引进行了一些测试,并且索引了更多,前两列影响了速度。
  2. 使A - K成为复合_id,并有一个文档数据字段:L。
  3. 我知道#2是MongoDB的高度非传统用法。有什么技术原因我不应该这样做吗?如果没有,使用官方C#驱动程序,我将如何执行此插入?

1 个答案:

答案 0 :(得分:1)

如果您选择了#2选项,则可以使用optimised创建自己的Custom Id Generator复合ID(使用A-K)。

您是否在compound keys上运行了测试?