【发布时间】:2012-09-25 19:38:13
【问题描述】:
大约有 50 万个客户的 RavenDB 文档。其中一个属性是“城市”。我如何编写一个 LINQ 查询来获取每个城市的所有出现及其计数的列表。例如,如果一千个客户文档将“NY”作为城市值,那么我需要一个城市列表,其计数为 NY 1000; LA 200、OR 1300、BO 5000 等。
这是我最初写的..
Dictionary<string,int> cityStats = session.Query<Customer>()
.ToList()
.GroupBy(x => x.City)
.OrderBy(x => x.Count())
.ToDictionary(x => x.Key, x => x.Count());
但这看起来不像给我准确的结果..所以我更改了最大请求允许属性(我知道它不推荐)只是为了看看它是否会改变结果..但是将 maxrequest 值保持为 500000 也会给我带来同样的结果。我确定有大约 50 万份客户文件,所以需要加起来才能匹配。
【问题讨论】:
-
你调用 ToList 有什么原因吗?
-
如果没有 ToList,我无法按...分组,这对于按城市名称进行分组和计数至关重要
-
嗨。我刚刚意识到 RavenDB 不支持 SelectMany、GroupBy 和 Join。如果这有任何帮助:ravendb.net/docs/client-api/querying/…。它说使用 Map/Reduce 索引。 (这只是搜索的结果。我没有使用RavenDB。)
标签: linq list dictionary ravendb