2017-10-19 192 views
1

我嘗試使用OrderBy中的IDocumentQuery在c#中的documentdb下查詢。 我嘗試通過遠程檢索的課程順序列表從我的地方,以便:documentdb中的OrderBy IDocumentQuery中的linq查詢

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

我收到以下錯誤消息:

「不支持ORDER BY子句ORDER BY項表達不能 映射到文檔路徑「

有人可能有解決方案嗎? ,或解決方法來解決有效的查詢方法?

+0

你參考這個[文件](https://docs.microsoft.com/en-us/azure/cosmos-db/indexing-policies)? '當查詢使用Order By時,Azure Cosmos DB返回一個錯誤,但是沒有針對查詢路徑的範圍索引以最大精度。「Order By查詢默認也需要最大索引精度(-1)。數據類型可以是字符串或數字 –

回答

0

「不支持ORDER BY子句。ORDER BY項表達不能映射到一個文件的路徑」

按照Azure的官方document,目前不支持由ST_DISTANCE空間功能排序結果。我也發現這個feedback,你可以投票。

排序默認查詢還需要最大索引精度(-1)。數據類型都可以字符串