【问题标题】:Mongoid Hash type became BSON::Document after a find查找后 Mongoid Hash 类型变为 BSON::Document
【发布时间】:2017-02-22 22:49:52
【问题描述】:

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

【问题讨论】:

    标签: hash mongoid document bson


    【解决方案1】:

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

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

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

    是 ruby​​ 的“相同”哈希。

    Mongo/BSON 规范说这两个文档不一样,因为键的顺序不同。

    对您(用户)来说,密钥顺序可能无关紧要。但如果你真的在乎,BSON 和 MongoDB 会尊重你的。

    Does Key order matter in a MongoDB BSON doc?

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2011-07-06
      • 2013-04-04
      • 2016-04-06
      • 1970-01-01
      相关资源
      最近更新 更多