如何在具有有效日期的MongoDB中插入文档?

时间:2018-07-21 09:14:33

标签: database mongodb

我有一个问题: 我有很多有关JSON格式产品的文档。 每个文档都有productID,日期(此文档有效)和内容(通常非常大)。我想将所有这些文档存储在MongoDB数据库中。由于内容大部分时间都保持不变,因此我不想在每个日期(同一产品)都存储它们。 相反,我正在考虑将其存储在以下结构中:

{"_id": <autogenerated>,
"productID": "XYZ",
"valid_dates": ["1.1.2017", "1.2.2017", "1.7".2017"],
"content_hash": <md5 hash of the content>
"content: <document content in JSON format>
}

每次插入时,我都会:

  • 计算我要插入的内容的md5哈希值
  • 查询数据库是否为此特定productID具有相同的(内容)哈希值
  • 如果当前productID的哈希值相同,则将新的有效日期添加到“ valid_dates”数组中
  • 如果当前productID的内容没有相同的哈希值,我将在数据库中添加带有“ valid_dates”的新条目,其中仅包含当前日期。

您认为所描述的结构会很好吗? MongoDB中是否有某些东西可以使描述过程更快?我也乐于接受有关存储数据的新建议。我唯一的要求是,我需要了解每种产品在每个日期的内容(如果我们的文档集中有该日期的文档),并且必须注意空间,因为文档集非常大并且可以预期未来发展。

0 个答案:

没有答案