我想使用mongoVue工具插入Guid,我該怎麼做?MongoVue和Guid
爲了解釋上下文,我用來複制我的集合的json(感謝文本視圖選項卡),並將其粘貼到我的txt文件中,而不是使用mongodump。但是,當我創建一個新的集合並將其粘貼到前一個副本的json中時,我的guid二進制類型現在顯示爲「」對象ID「」,那麼問題是:我無法將我的C#代碼映射到Object ID我的Guid領域。 這就是爲什麼我想知道是否有可能在MongoVue中插入一個GUID。
謝謝你們。 約翰
我想使用mongoVue工具插入Guid,我該怎麼做?MongoVue和Guid
爲了解釋上下文,我用來複制我的集合的json(感謝文本視圖選項卡),並將其粘貼到我的txt文件中,而不是使用mongodump。但是,當我創建一個新的集合並將其粘貼到前一個副本的json中時,我的guid二進制類型現在顯示爲「」對象ID「」,那麼問題是:我無法將我的C#代碼映射到Object ID我的Guid領域。 這就是爲什麼我想知道是否有可能在MongoVue中插入一個GUID。
謝謝你們。 約翰
您可以使用下面的符號在MongoVUE進入的GUID:
{
guid_field: new Guid("3bed978a-dc87-4fa4-8a1a-f0679387fa7e")
}
要插入一個新的GUID(Guid.NewGuid()),您可以輸入:
{
guid_field: new Guid()
}
所有的GUID轉換爲二進制類型3值。
不知道它可以回答你的問題,但這個帖子可以幫助:http://www.mongovue.com/2010/09/13/using-objectids/
感謝您的回答。他們的網站談論對象id並沒有多大幫助。我想不幸的是,沒有可能用Guid插入文檔 – Gui 2011-06-17 12:52:10
當我插入下面的類的實例:
public class C {
public Guid Id;
public int X;
}
它看起來像這樣在MongoVUE文本視圖:
/* 0 */
{
"_id": {
"$binary": "q4TTjt8k4UyaJI6FwuZ1EQ==",
"$type": "03"
},
"X": 1
}
其中GUID已表示爲子類型3的BSON二進制值,它不是ObjectId。
要在MongoVUE中插入GUID,您必須創建子類型3的BSON二進制值。難的部分是計算出要使用的Base64值。
此外,在MongoDB中一般存儲UUID存在問題。目前支持UUID的三種驅動程序(C#,Java和Python)在過去使用不同的字節順序來表示UUID的二進制表示,這使得生活變得非常困難。
未來版本的驅動程序將爲UUID使用新的二進制子類型4,並將全部在官方UUID網絡字節順序上進行標準化(16個字節的存儲順序與它們出現在UUID的字符串表示中的順序相同)。
當前版本的C#驅動程序(版本1.1剛剛發佈)有一些處理不同GUID表示的實驗性支持(請參閱GuidRepresentation枚舉以及它在哪裏使用)。
那麼你推薦使用什麼來代替Guid? – Gui 2011-06-17 15:45:16
我對MongoVUE進行了一些嘗試,我能夠重現這個問題。在插入_id具有二進制子類型3值的文檔時,_id被MongoVUE的ObjectId替換。我發郵件給MongoVUE的作者詢問這個問題。如果你有選擇,阻力最小的路徑是使用ObjectId而不是Guid。然而,我們的確打算完全支持Guids。 – 2011-06-17 20:38:24
非常感謝Ishaan爵士。 – Gui 2011-06-20 11:38:11
我右鍵單擊並按下插入鍵和使用類型JSON並放在你在textarea中顯示的格式,但我得到了錯誤:「數據輸入錯誤 - 請驗證您的值」。詳細信息說: 數據輸入錯誤 - 請驗證您的值 JSON閱讀器預期類型名稱,但找到'Guid'。 類型:System.IO.FileFormatException 有何想法? – 2014-08-28 21:28:05
請注意,從MongoVUE 1.4.2及更高版本開始,語法已更改:不推薦使用'Guid()。而是使用「CSGUID('...')」來分析.NET GUID。「[changelog]中的 (http://www.mongovue.com/downloads/) – 2015-01-16 16:01:17