MongoDb:使用string作为Id

时间:2011-11-01 10:14:44

标签: mongodb mongodb-.net-driver

我有以下对象:

public class Client
{
    [BsonId]
    public string Name { get; set; }
    public List<string> Links { get; set; }
}

我可以毫无问题地创建/删除它。但是,当我想更新名称时,它不起作用。

var query = Query.EQ("_id", id); //id - old name
var update = Update.Set("_id", name); //name - new name
Coll.Update(query, update);

答案(来自评论),据我所知,唯一的方法是拥有额外的身份证明:

对象:

public class Client
{
    [BsonId]
    public Id { get; set; }
    public string Name { get; set; }
    public List<string> Links { get; set; } 
}

更新名称:

var query = Query.EQ("_id", ObjectId.Parse(id));
var update = Update.Set("Name", name);
Coll.Update(query, update);

1 个答案:

答案 0 :(得分:2)

由于_id是主键,因此不允许修改MongoDB中的_id

如果您需要更改唯一名称属性,只需在其上添加唯一索引,而不是将其用作主键字段。