2017-10-19 1 views
1

Ich versuche OrderBy in IDocumentQuery Abfrage unter documentdb in C# zu verwenden. Ich versuche Liste der Kurse, um so durch die Entfernung von meinem Platz abzurufen:OrderBy in Documentdb linq Abfrage in IDocumentQuery

var userQuery = _client 
    .CreateDocumentQuery<Course>(_uriCourseCollection, options) 
    .Where(x => x.CourseName.ToLower().Contains(text)) 
    .OrderBy(x =>x.GeoLocation.Location.Distance(myPoint)) 
    .AsDocumentQuery(); 

ich die folgende Fehlermeldung erhalten:.

„Nicht unterstützte ORDER BY-Klausel ORDER BY Artikel Ausdruck nicht sein könnte einem Dokumentpfad zugeordnet "

Jemand kann Lösung haben? oder eine Problemumgehung, um die Abfrage effizient zu lösen?

+0

Haben Sie verwiesen dieses [Dokument] (https://docs.microsoft.com/en-us/azure/cosmos-db/indexing-policies)? 'Azure Cosmos DB gibt einen Fehler zurück, wenn eine Abfrage Order By verwendet, aber keinen Bereichsindex für den abgefragten Pfad mit der maximalen Genauigkeit aufweist.' Order By-Abfragen erfordern standardmäßig auch eine maximale Indexgenauigkeit (-1). DataType kann String oder Zahl sein –

Antwort

0

„Nicht unterstützte ORDER BY-Klausel. ORDER BY Artikel Ausdruck nicht auf ein Dokument Pfad zugeordnet werden kann“

Nach dem Azure offiziellen document wird Ergebnisse der ST_Distance räumlichen Funktion Bestellung derzeit nicht unterstützt. Ich finde auch feedback, Sie könnten es wählen.

Reihenfolge von Abfragen standardmäßig erfordern auch maximale Indexpräzision (-1). Datentyp kann String oder Zahl sein