Raven DB Count查询

时间:2011-04-16 18:31:56

标签: ravendb

我需要在特定集合中获取文档计数:

现有索引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

2 个答案:

答案 0 :(得分:8)

对于仍在寻找答案的人(此问题于2011年发布),现在采取的相应方法是:

var numPosts = session.Query<Post>().Count();

希望这会有所帮助......

答案 1 :(得分:5)

要从索引中获取结果,您可以使用:

session.Query<Collection>("Raven/DocumentCollections")
       .Where(x=>x.Name == "Posts")
       .FirstOrDefault();

这将为您提供所需的结果。