В документации указывается, как определить фильтр, но не как его использовать.C# MongoDB драйвер сильно типизировал использование фильтра
public class Widget : BsonDocument
{
[BsonElement("X")]
public int X { get; set; }
[BsonElement("Y")]
public int Y { get; set; }
}
public MyItem Get()
{
MyItem retvalue = null;
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("x", 10) & builder.Lt("y", 20);
Console.WriteLine(_collection.Count(filter));
var builder2 = Builders<Widget>.Filter;
var filter2 = builder2.Eq(widget => widget.X, 10) & builder2.Lt(widget => widget.Y, 20);
Console.WriteLine(_collection.Count(filter2));
return retvalue;
}
Таким образом, первый фильтр работает - но это не сильно типизированных.
Второй фильтр не может использоваться так.
Compiler ошибка: не может конвертировать из «MongoDB.Driver.FilterDefinition» до «» MongoDB.Driver.FilterDefinition
Таким образом, вопрос - как я могу использовать это в качестве фильтра. Очевидно, что параметр фильтра определяется как FilterDefinition. Получение MyItem из BsonDocument не помогло. «filter2.ToBsonDocument()
» компилируется, но не дает правильного результата (фильтр не работает!).
Может кто-нибудь указать мне в правильном направлении?
И какое-то место я могу прочитать об этом?
какая версия драйвера используется? – profesor79