2017-02-19 69 views
0

我使用mongoid 6.0.3Mongoid哈希類型成爲後BSON ::文檔中查找

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

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?