代码之家  ›  专栏  ›  技术社区  ›  Michael Wallasch

如何在MongoDB Norm中设置hilo序列的起始值?

  •  0
  • Michael Wallasch  · 技术社区  · 14 年前

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

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

    提前谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Niels van der Rest    14 年前

    HiLo密钥信息存储在normalhilokey集合中。你可以 增量 使用Mongo shell中的以下命令,使用此集合中的值更改生成的键的起始值:

    db.NormHiLoKey.update({ _id: "nameOfCollection" }, { $inc: { ServerHi: 42 } })
    

    注意安全

    不要 来自Mongo shell的ServerHi值!ServerHi存储为64位整数,不能在shell中表示。因此,如果您从shell设置值,它将更改基础数据类型并打破反序列化器的规范。

    如果你运行 db.NormHiLoKey.find() $inc operator 您可以安全地修改该值,而不会意外地破坏任何内容。

    推荐文章