我需要在特定集合中获取文档计数:
存在一个现有索引Raven/DocumentCollections,用于存储与属于该集合的实际文档配对的集合的Count和Name.如果可能的话,我想从这个索引中获取计数.
这是Raven/DocumentCollections索引的Map-Reduce:
from doc in docs
let Name = doc["@metadata"]["Raven-Entity-Name"]
where Name != null
select new { Name , Count = 1}
from result in results
group result by result.Name into g
select new { Name = g.Key, Count = g.Sum(x=>x.Count) }
Run Code Online (Sandbox Code Playgroud)
在旁注中,var Count = DocumentSession.Query<Post>().Count();总是返回0作为我的结果,即使我的数据库中有500个奇数文档,其中至少有50个文档在其元数据"Raven-Entity-Name"中有"Posts".我完全不知道为什么这个Count查询会一直返回0作为答案 - Raven日志在Count完成时显示
Request # 106: GET - 0 ms - TestStore - 200 - /indexes/dynamic/Posts?query=&start=0&pageSize=1&aggregation=None
Run Code Online (Sandbox Code Playgroud)
对于仍在寻找答案的人(此问题发布于2011年),现在采取的适当方法是:
var numPosts = session.Query<Post>().Count();
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...
要从索引中获取结果,您可以使用:
session.Query<Collection>("Raven/DocumentCollections")
.Where(x=>x.Name == "Posts")
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
那会给你想要的结果.
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |