使用timestamp作为mongodb _id?

时间:2013-05-08 19:20:56

标签: mongodb time-series

我想使用MongoDB存储时间序列数据,并认为保留一个表示日期时间的唯一索引字段会更有意义。所以问题是,我是否可以用自己的时间戳替换自动_id创建,并且会有任何缺点吗?

2 个答案:

答案 0 :(得分:2)

  

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

是的,你可以。

  

会有任何缺点吗?

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

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

答案 1 :(得分:2)

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

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