我使用以下方法更新MongoDB中的文档:
public async Task UpdateAsync(T entity)
{
await _collection.ReplaceOneAsync(filter => filter.Id == entity.Id, entity);
}
这很好用--我只是想知道是否有人有UpdateManyAsync
函数如何工作的例子:
public async Task UpdateManyAsync(IEnumerable<T> entities)
{
await _collection.UpdateManyAsync(); // What are the parameters here
}
任何建议都是赞赏!
3条答案
按热度按时间w6mmgewl1#
UpdateManyAsync
和update
在Mongo shell中的工作方式相同。因此,您可以指定过滤条件和更新操作,它将影响多个文档。例如,要递增所有a
字段,其中a
大于10
,您可以使用以下方法:我猜你想替换多个文档。这可以用bulkWrite方法来实现。如果你需要C#中的泛型方法,那么你可以引入某种标记接口来构建替换操作的过滤器部分:
然后,您可以向类中添加泛型constain,并在.NET中使用
BuikWrite
,如下所示:rqmkfv5c2#
正如@mickl的回答,您不能使用x=〉x.Id,因为它是一个通用用法,如下所示:
vc9ivgsu3#
或者按照Bson属性:
}