2

我想使用 MongoDB 来存储时间序列数据,并认为保留一个表示日期时间的唯一索引字段会更有意义。那么问题来了,我真的可以_id用自己的时间戳代替自动创建吗,会有什么弊端吗?

4

2 回答 2

2

我真的可以用我自己的时间戳替换自动 _id 创建吗?

是的你可以。

会有什么缺点吗?

一个是你必须为它工作,而内置的 _id 是内置的。另一个是你有责任确保你的 _id 确实是唯一的。根据您的数据频率和您使用的时间戳类型,这可能会也可能不会简单。

我并不是说这一定是个坏主意。优点很明显,但是,是的,也有缺点。

于 2013-05-08T19:30:18.057 回答
2

您绝对可以_id使用自己的时间戳填充字段。需要注意的是:

  1. _id是唯一索引,因此您必须确保没有 2 个文档共享时间戳。如果你不能保证这一点,那么它就行不通。
  2. 如果您要对此集合进行分片,您可能希望避免使用时间戳作为分片键。如果您总是使用当前时间戳写入数据点,那么您会发现所有写入都将转到单个分片,而不是均匀分布在分片上。
于 2013-05-08T19:34:04.247 回答