MongoDB C#驱动程序是否支持像Entity Framework这样的查询拦截器?
我已查看过文档但无法找到任何内容。
基本上我需要做的是确保对数据库的某些查询(取决于上下文)始终具有某些限制。
例如,如果我的文档可以被软删除,那么我总是需要确保为{" SoftDeleted":false}添加了一个过滤器。 Entitity Framework通过查询拦截器优雅地处理它。
答案 0 :(得分:3)
MongoClient
允许订阅CommandStartedEvent
。以下示例转储到控制台发送到服务器的每个命令:
var mongoClient = new MongoClient(new MongoClientSettings
{
Server = new MongoServerAddress("localhost", 27017),
ClusterConfigurator = cb =>
{
cb.Subscribe<CommandStartedEvent>(e =>
{
Console.WriteLine($"{e.CommandName} - {e.Command.ToJson(new JsonWriterSettings { Indent = true })}");
Console.WriteLine(new String('-', 32));
});
}
});
CommandStartedEvent
包含您可以用于特定逻辑的CommandName
和Command
属性。