我有以下对象:
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);
答案 0 :(得分:2)
由于_id
是主键,因此不允许修改MongoDB中的_id
。
如果您需要更改唯一名称属性,只需在其上添加唯一索引,而不是将其用作主键字段。