Mongodb 使用FluentMongo删除和更新文档

Mongodb 使用FluentMongo删除和更新文档,mongodb,fluent-mongo,Mongodb,Fluent Mongo,我想知道是否有人有一种干净的方法来处理使用FluentMongo删除和更新文档 我正在使用FluentMongo创建一个存储库层;然而,无法删除或更新文档是很麻烦的。也许我在维护正确的存储库模式时错过了一个处理这个问题的方法 公共接口IRepository:IDisposable { IQueryable All(),其中T:class,new(); 作废删除(表达式) 其中T:class,new(); void Update(tenty实体),其中tenty:class,new(); } 谢

我想知道是否有人有一种干净的方法来处理使用FluentMongo删除和更新文档

我正在使用FluentMongo创建一个存储库层;然而,无法删除或更新文档是很麻烦的。也许我在维护正确的存储库模式时错过了一个处理这个问题的方法

公共接口IRepository:IDisposable
{
IQueryable All(),其中T:class,new();
作废删除(表达式)
其中T:class,new();
void Update(tenty实体),其中tenty:class,new();
}

谢谢。

最简单的方法是将标准MongoCollection包装在存储库方法后面。因为您的存储库是类型化的,所以您只需创建一个类型化集合并从该集合中删除文档即可。下面是一个示例实现

MongoCollection collection=mongoserver.GetCollection();
公共无效删除(字符串id)
{   
this.collection.Remove(Query.EQ(“_id”,id));
}
公共作废删除(T实体)
{
删除(实体Id);
}

于2013年7月27日添加

使用,有一个属性可以检索对高级查询有用的
MongoCollection
,例如,如果要删除集合中的所有文档,我们可以编写如下内容:

public void DeleteAll(){
var collection=myRepository.collection;
collection.RemoveAll();
}
如果要返回所有文档确实已删除的确认,请使用
Ok
属性

public bool DeleteAll(){
var collection=myRepository.collection;
return collection.RemoveAll().Ok;
}

使用Linq表达式进行删除如何?这才是真正的问题;创建查询。