MongoDb C#驱动程序
本文关键字:驱动程序 MongoDb | 更新日期: 2023-09-27 18:20:48
我对MongoDb和c#驱动程序有两个问题,我对无sql概念还很陌生:
考虑以下类别:
public class Company
{
public ObjectId Id { get; set; }
public DateTime CreateDate { get; set; }
public string Symbol { get; set; }
public string Name { get; set; }
public IEnumerable<CompanyEvent> CompanyEvents {get;set;}
}
1) 。如何确保"Symbol"属性是集合中的唯一约束?在添加新公司之前,我是否必须编写自己的代码进行检查?
2) 。比方说,我在集合中添加了一个有2个CompanyEvent类的公司,如果我想添加第三个事件,我是否必须先获取对象,然后再添加另一个CompanyEvents?
1)您可以使用唯一索引:http://docs.mongodb.org/manual/core/indexes/#unique-索引
var index = new IndexKeysBuilder<Company>();
index.Ascending(c => c.Symbol);
Collection.EnsureIndex(index, new IndexOptionsBuilder().SetUnique(true));
2) 你有两个选项
从数据库中读取公司对象,添加CompanyEvent,将公司对象保存到数据库
将CompanyEvent对象推送到数据库中的CompanyEvents数组
Collection.Update( Query<Company>.EQ(e => e.Id, id), Update<Company>.Push(e => e.CompanyEvents, new CompanyEvent()));
有关推送操作员的更多信息http://docs.mongodb.org/manual/reference/operator/push/