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; }
    }

 

你可能感兴趣的:(MongoDB中的字段类型Id)