如何在 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 驱动程序中应用软删除过滤器?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用官方 c# 驱动程序在 MongoDB 中使用 Update.Set 更新多个字段?
如何在 2.1 MongoDB C# 驱动程序中使用地理空间查询?
如何使用 C# mongodb 驱动程序防止 SQL 注入?