濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mongodb中關于GUID的顯示問題詳析

Mongodb中關于GUID的顯示問題詳析

熱門標簽:400電話到哪辦理優(yōu)惠 云南大數(shù)據(jù)外呼系統(tǒng) 怎么更改高德地圖標注 上海市三維地圖標注 博樂電銷機器人 南寧外呼系統(tǒng)招商 機器人打電銷電話 電話機器人是電腦呼號嗎 鄭州網(wǎng)絡外呼系統(tǒng)價錢

發(fā)現(xiàn)問題

最近將一個程序的存儲遷移到了Mongodb,發(fā)現(xiàn)了一個現(xiàn)象,Guid類型寫入后,在程序里面讀取的和用客戶端工具展示的不一樣,一個簡單的示例如下:

 var doc = new {_id = 1, Value = Guid.Parse("{B63932BB-9688-432B-B3A0-C4AE3FD2696A}") };
 collection.InsertOne(doc.ToBsonDocument());

寫入DB后,我們從客戶端工具來查看它:

通過對比可以發(fā)現(xiàn),展示的值和寫入的形式不一樣,但是讀取到的值卻是沒有問題的。這個問題可以從官方的文檔規(guī)范中找到答案:

官方文檔: http://bsonspec.org/spec.html

Mongodb中是將uuid其作為二進制類型存儲的,用一個subtype來標記其類型為uuid,在對C#,java,python提供的驅(qū)動中,默認是將其子類型映射了為3(Legacy UUID),這個在客戶端工具中也是有所展示的:

實際上,大多數(shù)客戶端工具也是能支持將Legacy UUID展示成我們寫入時候的那個樣子。

   

解決方法

雖然這個不影響程序的功能,但由于第一眼看到的字符串不是寫入的格式,很多時候是影響我們調(diào)試程序的。一個較好的解決方法是默認將以標準的UUID格式存儲,只需要設置一個全局配置即可:

 BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; 

這樣就方便多了:

參考文章:

MongoDB Best Practices for UUID Data

總結(jié)

以上就是Mongodb中關于GUID的顯示問題的詳細內(nèi)容,更多關于Mongodb中GUID顯示問題的資料請關注腳本之家其它相關文章!

標簽:益陽 秦皇島 白銀 寧夏 恩施 定西 杭州 澳門

巨人網(wǎng)絡通訊聲明:本文標題《Mongodb中關于GUID的顯示問題詳析》,本文關鍵詞  Mongodb,中,關于,GUID,的,顯示,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Mongodb中關于GUID的顯示問題詳析》相關的同類信息!
  • 本頁收集關于Mongodb中關于GUID的顯示問題詳析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    三明市| 三江| 易门县| 五大连池市| 新源县| 贵港市| 汉寿县| 浦江县| 库车县| 华容县| 昔阳县| 乌兰察布市| 阿克苏市| 新乡县| 阿克陶县| 从江县| 长乐市| 安宁市| 山西省| 郑州市| 格尔木市| 灵石县| 临安市| 池州市| 淄博市| 衡阳县| 防城港市| 炉霍县| 卢氏县| 筠连县| 奉节县| 越西县| 德化县| 辉南县| 隆子县| 克山县| 新密市| 桐梓县| 连南| 新巴尔虎右旗| 米林县|