【问题标题】:How to set the hilo sequence starting value in MongoDB Norm?如何在 MongoDB Norm 中设置 hilo 序列起始值?
【发布时间】:2010-08-26 20:25:07
【问题描述】:

我通过规范驱动程序将许多现有值导入到我的 mongodb 中(包括“旧”id - 整数值)。现在我不时遇到重复的关键错误。

为了解决这个问题,我必须手动设置 hilo 序列的起始值。如何做到这一点?

提前致谢

【问题讨论】:

    标签: mongodb norm


    【解决方案1】:

    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 operator,您可以安全地修改该值,而不会意外破坏任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 2021-09-26
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      相关资源
      最近更新 更多