用過Mongo的人都知道,Mongo使用的是Bson類型,有string,int,date,bool等數據類型,具體就不詳述了。
在使用Mongo 的C#官方驅動時會碰到一個問題,如何將Bson中的數據類型與C#中的數據類型匹配起來。
以下就是我在實際項目中碰到的需要匹配的數據類型。
id
比如說所有的Mongo文檔里都有一個_id,如果沒有標識,直接在對象類中定義一個_id屬性,那么在數據讀取或保存時就會報錯。
因此在對象類中應當如下進行定義:
[BsonId] public ObjectId _id { get; set; }
DateTime
又比如在對象類中定義一個DateTime類型,保存到Mongo后再讀取出來發現,取出來的日期比存入的日期要小。
原來Mongo數據庫中都會將時間保存成UCT時間,即格林威治時間,比北京時間要晚8小時。
不過如果在時間屬性前加上以下標簽,即可解決問題。
[BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime BeginTime { get; set; }