c# - 将 FilterDefinition<TDocument> 转换为可以在 mongo shell 中运行的常规 json mongo 查询

标签 c# .net mongodb mongodb-.net-driver mongodb-csharp-2.0

我有很多复杂的查询,有时我希望直接针对 Mongo 进行检查,以进行调试\解释()。 使用较新的 2.0+ c# 驱动程序,我不知道该怎么做。在以前的版本中,有一个叫做 IMongoQueryThis 的东西。工作。

一个简单的例子:

FilterDefinition<LalalaEvent> filter = Builders<LalalaEvent>.Filter
    .Where(e => ids.Contains(e.Id) && e.Deleted != true );

最佳答案

我今天试图解决同样的问题。这是我发现的。

public static class MongoExtensions
{
    public static BsonDocument RenderToBsonDocument<T>(this FilterDefinition<T> filter)
    {
        var serializerRegistry = BsonSerializer.SerializerRegistry;
        var documentSerializer = serializerRegistry.GetSerializer<T>();
        return filter.Render(documentSerializer, serializerRegistry);
    }
}

我在调用集合时无权访问它,因此无法使用上述解决方案。

这可以让你做

var json = filter.RenderToBsonDocument().ToJson();

关于c# - 将 FilterDefinition<TDocument> 转换为可以在 mongo shell 中运行的常规 json mongo 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047692/

相关文章:

c# - ManagementEventWatcher(WMI) 从远程机器通知事件时出现异常

.net - 在 .NET 中,如何获取给定文化的 YYYY、MM 和 DD 顺序

c# - 扩展原始类型

c# - C# 中的 SQL 批量复制/插入

javascript - Nodejs 异步更新插入问题

c# - Entity Framework 加入与包含

c# - Kinect 红外灰色 Pixelformat 转换为 8bpp

c# - C#如何确保完整性?(DLL未修改)

mongodb - 使用 Solr 索引嵌入式 mongoDB 文档(在数组中)

python - 在pymongo中查询 "like"