我需要在特定集合中获取文档计数:
现有索引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) }
在旁注中,var Count = DocumentSession.Query<Post>().Count();
总是返回0作为我的结果,即使我的数据库中有500个奇怪的文档,其中至少有50个文档的元数据“Raven-Entity-Name”为“帖子”。我完全不知道为什么这个Count查询保持返回0作为答案 - Raven日志在完成Count时显示这个
Request # 106: GET - 0 ms - TestStore - 200 - /indexes/dynamic/Posts?query=&start=0&pageSize=1&aggregation=None
答案 0 :(得分:8)
对于仍在寻找答案的人(此问题于2011年发布),现在采取的相应方法是:
var numPosts = session.Query<Post>().Count();
希望这会有所帮助......
答案 1 :(得分:5)
要从索引中获取结果,您可以使用:
session.Query<Collection>("Raven/DocumentCollections")
.Where(x=>x.Name == "Posts")
.FirstOrDefault();
这将为您提供所需的结果。