C# RavenDB映射/还原为列表的属性

C# RavenDB映射/还原为列表的属性,c#,mapreduce,ravendb,C#,Mapreduce,Ravendb,只是学习Map/Reduce,我错过了一步。我读过这篇文章(),但还不能完全达到我所需要的 我有一个目标: public class User : IIdentifiable { public User(string username) { Id = String.Format(@"users/{0}", username); Favorites = new List<string>(); } public IList

只是学习Map/Reduce,我错过了一步。我读过这篇文章(),但还不能完全达到我所需要的

我有一个目标:

public class User : IIdentifiable
{
    public User(string username)
    {
        Id = String.Format(@"users/{0}", username);
        Favorites = new List<string>();
    }

    public IList<string> Favorites { get; protected set; }

    public string Id { get; set; }
}
例如,如果用户1有收藏夹1、2、3,而用户2有收藏夹1、2,那么这应该返回{{OilId=3,Count=1},{OilId=2,Count=2},{OilId=1,Count=2}

当前代码生成异常:System.NotSupportedException:节点不支持:调用

我觉得我很接近。有什么帮助吗?

MBonig, Map/Reduce仅对跨文档进行聚合有用。对于这种情况,您可以通过以下方式获得更好的服务:

  session.Query<User>().Select(u=>u.Favorites).ToList()
session.Query().Select(u=>u.Favorites.ToList())

我编写了一个复制您的代码的小应用程序,但没有看到引发异常。请在此处查看我的代码:。输出是

最爱:1,计数:2

最爱:2,计数:2

最爱:3,计数:1


这正是我所期望的。

我以为这就是我想要做的。我想我在OP中不清楚。我想汇总并找出所有用户收藏夹列表中的哪些值是被选中最多的。如果查询“Count>0”的Map/Reduce索引,您会得到什么结果返回什么值?为Map/Reduce提供的代码在运行时产生错误:System.NotSupportedException:Node not supported:CallYes,仔细查看后,我们得到了相同的代码。我遇到的问题是,我在RavenDB IQueryable对象中添加了一个Select。我先打电话给托利斯特,然后打电话给“选择和所有作品”。谢谢
  session.Query<User>().Select(u=>u.Favorites).ToList()