我试图使用以下查询在cosmosdb中使用groupby进行查询,
var result = client.CreateDocumentQuery<Login>(documentUri)
.Where(i => i.logevent == "Success" && i._ts > 1517405472 && i._ts <= 1518010272)
.GroupBy(t => t._ts);
它会引发以下错误
DocumentQueryException:查询表达式无效,表达式https://documents.azure.com/dbs/colls/test.Where(i =>(((i.logevent ==“Success”)AndAlso(i._ts> 1517405472) )AndAlso(i._ts <= 1518010272))) . GroupBy(t => t._ts)不受支持 . 支持的表达式是'Queryable.Where','Queryable.Select'和'Queryable.SelectMany
1 回答
Cosmos DB LINQ提供程序目前不支持GroupBy . 您必须使用AsEnumerable实现where子句的结果,然后使用对象上的LINQ执行Group By .
Note: 您应该尽可能多地将查询谓词下推到服务器 . 换句话说,Where子句应该在AsEnumerable前面 .