このドキュメントでは、フィルタの定義方法について説明しますが、フィルタの使用方法は示していません。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;
}
だから、最初のフィルターが働いている - しかし、それは強く型付けされたないです。
第2のフィルタは、そのように使用することはできません。
コンパイラエラー:が「MongoDB.Driver.FilterDefinition」
に「MongoDB.Driver.FilterDefinition」から変換することはできませんので、質問です - どのように私はこれをフィルタとして使用します。明らかに、filterパラメータはFilterDefinitionとして定義されています。 MyItemをBsonDocumentから派生させることは役に立たなかった。 "filter2.ToBsonDocument()
"はコンパイルされますが、正しい結果が得られません(フィルタは機能しません)。
誰かが私を正しい方向に向けることができますか?
それについて私が読むことのできる場所は?
が使用されて? – profesor79