是否可以识别字符串是否格式化为BSON ObjectID?
对于我们可以做的字符串:
"hello".is_a?(String) # => true
这不起作用,因为ObjectID仍然是一个String。但是有可能分析字符串以确定它是否格式化为BSON ObjectID?
通常,ObjectID具有这种格式。
52f4e2274d6f6865080c0000
格式标准为stated in the docs:
ObjectId是一个12字节的BSON类型,使用:
构造一个4字节的值,表示自Unix时代以来的秒数,
一个3字节的机器标识符,
一个2字节的进程ID,和
一个3字节的计数器,以随机值开始。
答案 0 :(得分:2)
在Mongoid
中使用:.is_a?(Moped::BSON::ObjectId)
sytanx。
示例:
some_id = YourModel.first.id
some_id.is_a?(Moped::BSON::ObjectId)
注意:强>
“52d7874679478f45e8000001”.is_a?(String)#Prints true
答案 1 :(得分:2)