文档告诉您如何定义过滤器,但不知道如何使用过滤器。
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;
}
所以第一个过滤器正在运行 - 但不强类型。
不能像这样使用第二个过滤器 编译器错误:无法从'MongoDB.Driver.FilterDefinition'转换为'MongoDB.Driver.FilterDefinition'
所以问题是 - 我如何将其用作过滤器。显然,filter参数定义为FilterDefinition。从BsonDocument派生MyItem没有帮助。 “filter2.ToBsonDocument()
”编译但不会产生正确的结果(过滤器无效!)。
有人能指出我正确的方向吗? 还有一些我能读到的地方吗?