0

我正在构建一个电子商务系统,该系统使用复合桶散列来有效地对类似项目进行分组。不用说我为什么选择这个系统,我只想说它解决了分布式电子商务系统面临的几个关键问题。

有 11 个桶,它们都是整数,代表各种值。我们将这些字段称为 A 到 K。第 12 个字段 L 是一个产品 ID 数组。将这一切视为一个层次结构,叶级别 (L) 是数据。

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

这给了我两个选择:

  1. 插入一个无意义的_id文档id,并在A-K上放一个索引,保证唯一性。我已经对索引进行了一些测试,并且索引的前两列对速度的影响更大。
  2. 将 A - K 设为复合 _id,并具有一个文档数据字段:L。

我知道#2 是对 MongoDB 的一种非常规的使用。我不应该这样做有什么技术原因吗?如果没有,使用官方 C# 驱动程序,我将如何执行此插入?

4

1 回答 1

1

如果您选择选项 #2,您也许可以使用自定义 ID 生成器创建自己的优化复合 ID(使用 AK)。

您是否对复合键进行了测试?

于 2012-10-17T22:48:35.383 回答