我有很多复杂的查询,有时我希望直接针对 Mongo 进行检查,以进行调试\解释()。
使用较新的 2.0+ c# 驱动程序,我不知道该怎么做。在以前的版本中,有一个叫做 IMongoQuery
和 This 的东西。工作。
一个简单的例子:
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/