Die Dokumentation zeigt Ihnen, wie Sie einen Filter definieren, aber nicht, wie Sie ihn verwenden.C# MongoDB-Treiber stark typisierte Filterverwendung
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;
}
So ist der erste Filter arbeitet - aber es ist nicht stark typisiert.
Der zweite Filter kann nicht so verwendet werden.
Compiler-Fehler: kann nicht konvertieren von ‚MongoDB.Driver.FilterDefinition‘ auf ‚MongoDB.Driver.FilterDefinition‘
Die Frage ist also - wie verwende ich diese als Filter. Offensichtlich ist der Filterparameter als FilterDefinition definiert. MyItem von BsonDocument abzuleiten hat nicht geholfen. "filter2.ToBsonDocument()
" kompiliert, liefert aber nicht das korrekte Ergebnis (Filter funktioniert nicht!).
Kann mir jemand in die richtige Richtung zeigen?
Und irgendwo kann ich darüber lesen?
welche Treiberversion im Einsatz ist? – profesor79