【发布时间】:2016-11-16 14:19:42
【问题描述】:
文档告诉您如何定义过滤器,但没有告诉您如何使用它。
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'
所以问题是 - 我如何使用它作为过滤器。显然过滤器参数被定义为FilterDefinition。从 BsonDocument 派生 MyItem 没有帮助。 "filter2.ToBsonDocument()" 编译但没有产生正确的结果(过滤器不工作!)。
有人能指出我正确的方向吗?
还有什么地方我可以读到?
【问题讨论】:
-
正在使用什么驱动版本?
标签: c# mongodb mongodb-.net-driver