2

具有 BigInteger id 的 MongoDB 的 Spring Data 仍在生成字母数字 ObjectId。我想将数字序列作为 ID。如何配置此行为?

4

2 回答 2

1

Spring Data MongoDB 尝试按照推荐的方式转换所有可以ObjectId偶然组成 s 的类型。如 MongoDB参考文档中所述,这是因为它们允许在集群上创建稳定增加的 id。如果你真的需要线性 ids(1,2,3……不仅是稳定增加的),请使用一种类型Long并手动创建 ids。

于 2012-06-06T10:05:46.077 回答
0

根据 springdata 文档:在 Java 类中声明为 BigInteger 的 id 属性或字段将使用 Spring Converter 转换为 ObjectId 并存储为

你到底想为_id代表什么?如果它只是一个大数字,使用 long 值将能够表示 64 位数字。如果您需要表示大于 64 位的值,那么它们必须在 mongo 中表示为 String 或 BinData,但不是 ObjectId,因为它是固定的 12 个字节。

于 2012-04-11T07:50:20.873 回答