Wie verwende ich eine Geospatial-Abfrage im 2.1 MongoDB C # -Treiber?

8

Ich habe mir tagelang den Kopf aufgeschlagen. Ich habe eine sehr einfache Abfrage, die ich in C # ausführen möchte, es sieht in der Shell so aus.

%Vor%

Meine Sammlung sieht so aus

%Vor%

Laut den Dokumenten hier MongoDB C # API Docs der MongoDB.Driver.Builders.Query Objekt ist jetzt Erbe. Wenn ich so etwas mache,

%Vor%

Der Compiler beklagt, dass er nicht von IMongoQuery in FilterDefinition konvertieren kann. Dies sagt mir, dass die Legacy-Abfrage & lt; & gt; Builder wird von der neuen 2.1-Bibliothek nicht unterstützt. Aber für das Leben von mir kann ich nirgends in den api Dokumenten finden, die einen Ersatz beziehen?

Kann mir jemand beim Ausführen dieser einfachen geo-räumlichen Abfrage im 2.1 C # -Treiber in die richtige Richtung zeigen? Ich bin ratlos.

Außerdem habe ich einen 2Dsphere-Index für die Sammlung erstellt, wenn ich nicht den Shell-Befehl nicht funktionieren würde. Hier ist die Indexausgabe.

%Vor%

BEARBEITEN

Nachdem ich eine TON Dokumentation durchforstet habe, glaube ich, dass ich sie gefunden habe. Alle Beispiele zeigen weiterhin die Legacy-Abfrage & lt; & gt; Methode, aber es scheint, dass die neue Methode Teil des Builders & lt; & gt; .Filter-Namespace ist. Also scheint dieser Codeblock für mich zu funktionieren,

%Vor%

Dieser Codeblock ist sehr unordentlich, er ist das Ergebnis von Versuchen und Fehlschlägen. Ich bin mir sicher, dass ich herausfinden werde, wie man es aufräumen kann. Es scheint mir ein wenig wortreich, dass Sie aus GeoJson2DGeographicCoordinates einen GeoJsonPoint erstellen müssen, aber ich bin mir sicher, dass es einen guten Grund dafür gibt. Wenn jemand weiß, bitte zögern Sie nicht zu kommentieren. Irgendwelche Vorschläge zur Verbesserung dieser Antwort sind sehr willkommen, dies war eine frustrierende Durchgrabungsdokumentation, also hoffentlich hilft dies, jemand anderen in die richtige Richtung zu weisen.

    
Joshua Lawrence Austill 29.11.2015, 18:08
quelle

0 Antworten

Tags und Links