Raven DB Count查询

Zas*_*asz 5 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) }
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)

Jay*_*ido 8

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

var numPosts = session.Query<Post>().Count();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...


Aye*_*ien 5

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

session.Query<Collection>("Raven/DocumentCollections")
       .Where(x=>x.Name == "Posts")
       .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

那会给你想要的结果.

  • "收藏"是在哪里定义的? (4认同)