MongoDB的objectid可以只包含数字吗?



MongoDB的objectid可以只包含数字吗?

我正在使用的库中有一段代码,它执行以下操作:

if (is_int($mixed) || ctype_digit($mixed)) {
    return;
}

因此,它在我的数据库中丢弃了一个ObjectId为'512417805115179054000022'的记录,因为它只包含数字。

其他每条记录都有一个包含至少一个alpha字符的ObjectId,例如'51241740511517a25b000017'

这是一个函数的问题,它假设一个ObjectId 永远不能只包含数字,当它实际上是可能的,或者它是一些较低层次的问题与驱动程序或东西,已经创建了一个ObjectId只有数字字符错误?

MongoDB内部用来验证对象ID的正则表达式是/^[0-9a-fA-F]{24}$/

即对象ID既可以包含0-9中的数字,也可以包含a-f中的大写或小写字母。并且ID将始终具有24字符。因此,只有数字的对象ID和只有字母的对象ID是尽可能多的。

objecd是BSON,您看到的是十六进制表示。因此,假设某些id不包含字母是正确的。

最新更新