我通过规范驱动程序将很多现有值导入到我的 mongodb 中(包括“旧”id - 整数值)。现在我不时遇到重复的关键错误。
为了解决这个问题,我必须手动设置 hilo 序列的起始值。如何才能做到这一点?
提前致谢
HiLo 密钥信息存储在 NormHiLoKey 集合中。您可以在 Mongo shell 中使用以下命令增加此集合中的值以更改生成键的起始值:
db.NormHiLoKey.update({ _id: "nameOfCollection" }, { $inc: { ServerHi: 42 } })
不要从 Mongo shell设置ServerHi 值!ServerHi 存储为 64 位整数,无法在 shell 中表示。因此,如果您从 shell 设置值,它将更改基础数据类型并破坏 NoRM 反序列化器。
如果您运行该db.NormHiLoKey.find()命令,您可能会看到具有 floatApprox 属性的对象。这表明基础数据类型是 64 位整数。通过使用$inc 运算符,您可以安全地修改该值,而不会意外破坏任何内容。