我正在使用mongoid 6.0.3
class C
include Mongoid::Document
field :h, type: Hash, default: {}
end
c = C.new
c.h = {"a" => "b"}
c.save!
puts c.h.class # gives Hash
saved_c = C.find(c.id)
puts saved_c.h.class # gives BSON::Document
我错过了什么吗?我无法弄清楚为什么哈希在简单查找之后变成了BSON :: Document?
答案 0 :(得分:0)
BSON在BSON :: Documents和mongo数据库中使用有序密钥。
{"a" => "b", "c" => "d"}
和
{"c" => "d", "a" => "b"}
是"相同"哈希到哈利。
Mongo / BSON规范说这两个文件不一样,因为密钥的排序方式不同。
对于您(用户),按键顺序可能无关紧要。但如果您确实关心,BSON和MongoDB将尊重您。