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

Posted

技术标签:

【中文标题】如何在 C# 的 MongoDB 驱动程序中应用软删除过滤器?【英文标题】:How to apply soft delete filter in MongoDB Driver for C#? 【发布时间】:2022-01-04 15:14:53 【问题描述】:
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 驱动程序有类似的东西吗?如果没有,你们有没有关于如何以任何其他方式实现这一点的建议?

【问题讨论】:

mongodb-entities.com/wiki/DB-Instances-Global-Filters.html 【参考方案1】:

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

【讨论】:

以上是关于如何在 C# 的 MongoDB 驱动程序中应用软删除过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

VoIP/SIP 软电话 C# WPF

如何使用官方 c# 驱动程序在 MongoDB 中使用 Update.Set 更新多个字段?

如何在 2.1 MongoDB C# 驱动程序中使用地理空间查询?

如何使用 C# mongodb 驱动程序防止 SQL 注入?

如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符

如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符