Mongoid Hash类型在查找后成为BSON :: Document

时间:2017-02-19 08:04:31

标签: hash mongoid document bson

我正在使用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?

1 个答案:

答案 0 :(得分:0)

BSON在BSON :: Documents和mongo数据库中使用有序密钥。

 {"a" => "b", "c" => "d"} 

 {"c" => "d", "a" => "b"} 

是"相同"哈希到哈利。

Mongo / BSON规范说这两个文件不一样,因为密钥的排序方式不同。

对于您(用户),按键顺序可能无关紧要。但如果您确实关心,BSON和MongoDB将尊重您。

Does Key order matter in a MongoDB BSON doc?