【问题标题】:Creating unique index in MongoDB with type integer在 MongoDB 中创建整数类型的唯一索引
【发布时间】:2021-05-13 16:13:08
【问题描述】:

我想创建一个简单的集合来存储不同设备的统计信息。 每个设备都有一个唯一的设备 ID。我想强制执行唯一性,所以我想为设备 id 字段创建一个唯一索引,但我不知道如何告诉集合该字段是数字类型。

例如,我可以接收设备 id 为“0x3f”、“0x0003f”、“3f”的查询...并且所有这些都需要与同一个文档匹配。 我可以在查询数据库之前解析请求,但对我来说这听起来不像是正确的解决方案......

【问题讨论】:

    标签: mongodb types unique-index


    【解决方案1】:

    我建议不要在 Mongo 中担心这个问题,而是尝试在调用 Mongo 的应用程序层中处理它。例如,在 JavaScript 中,使用任何十六进制文字都会转换为相同的整数值:

    var i = 0x3f;
    var j = 0x0003f;
    
    if (i == 63) {
        console.log("0x3f = 63");
    }
    if (j == 63) {
        console.log("0x0003f = 63");
    }

    也就是说,只需让应用程序将十六进制文字编组为整数值,然后将该 int 值传递给 Mongo。

    【讨论】:

    • 嗨。谢谢你的回答。我想在我的应用程序中处理这个问题,但我想也许我错过了一些东西。 MongoDB 对我来说是新的,这是我第一次使用它。从您的回答中,我了解到没有更好的解决方案
    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    相关资源
    最近更新 更多