如何在 MongoDB C# 驱动程序中应用软删除过滤器?

How to apply soft delete filter in MongoDB Driver for C#?

public class User
{
        public string Id { get; private set; }
        public string Name { get; private set;} 
        public bool IsActive{ get; private set; }
}

我正在构建一个使用 MongoDB 驱动程序连接到 Mongo 的 .Net 应用程序。 一些已实现的实体有一个 IsActive 字段 - 基本上是一个布尔值,如果实体处于活动状态则设置为 true,如果实体已被删除则设置为 false。 (如果您愿意,可以进行软删除或逻辑删除)

我的目标是应用一个“全局过滤器”,它将作为应用于给定集合的任何过滤器的基础。类似于 EF Core 全局查询过滤器 https://docs.microsoft.com/en-us/ef/core/querying/filters

MongoDB Driver 有这样的东西吗?如果没有,你们中的任何人对如何以任何其他方式实现它有什么建议吗?

开箱即用的唯一 option 是 IMongoCollection.OfType,其中按实体类型(而不是字段)进行过滤,因此您需要稍微更改您的实现才能使用它。