MongoDB中的字段類型Id


眾所周知,在向MongoDB的集合中添加一條記錄時,系統會自動增加一個字段名為"_id",類型為ObjectId的字段,其值為24位字符串,可以使用此值作為記錄的唯一標識。

項目中需要調用一個已存在的MongoDB,發現其每個collections都有一個字段"Id",而其值就是自動生成的那個"_id",這樣就存在兩個類型相同值也相同的字段,真是多此一舉。

List<mgdata> items = colMsg.FindAllAs<mgdata>().SetLimit( 10).ToList<mgdata>();

 

當用MongoDB Driver獲取數據時,提示以下異常

 

MongoDB.Bson.BsonSerializationException: Member 'Id' of class 'yourproject' cannot use element name '_id' because it is already being used by member '_id'.

 

修改model如下后,可正常讀取。(通過繼承,讓"_id","Id"兩個屬性不要同時平行出現)

 

public  class bsonItem
    {
         public BsonObjectId _id {  getset; }
    }

public  class mgdata:bsonItem
    {
         public BsonObjectId Id {  getset; }
         public  string name {  getset; }
         public DateTime date {  getset; }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM