documentdb中的OrderBy IDocumentQuery中的linq查询

documentdb中的OrderBy IDocumentQuery中的linq查询

问题描述:

我尝试使用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)。数据类型可以是字符串或数字 –

“不支持ORDER BY子句。ORDER BY项表达不能映射到一个文件的路径”

按照Azure的官方document,目前不支持由ST_DISTANCE空间功能排序结果。我也发现这个feedback,你可以投票。

排序默认查询还需要最大索引精度(-1)。数据类型都可以字符串