主頁 > 知識(shí)庫 > Mongodb中關(guān)于GUID的顯示問題詳析

Mongodb中關(guān)于GUID的顯示問題詳析

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

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

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

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

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

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

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

Mongodb中是將uuid其作為二進(jìn)制類型存儲(chǔ)的,用一個(gè)subtype來標(biāo)記其類型為uuid,在對(duì)C#,java,python提供的驅(qū)動(dòng)中,默認(rèn)是將其子類型映射了為3(Legacy UUID),這個(gè)在客戶端工具中也是有所展示的:

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

   

解決方法

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

 BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; 

這樣就方便多了:

參考文章:

MongoDB Best Practices for UUID Data

總結(jié)

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mongodb中關(guān)于GUID的顯示問題詳析》,本文關(guān)鍵詞  Mongodb,中,關(guān)于,GUID,的,顯示,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mongodb中關(guān)于GUID的顯示問題詳析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mongodb中關(guān)于GUID的顯示問題詳析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章