gpt4 book ai didi

c# - 如何在 RavenDB 中获取嵌入式文档属性的聚合数据

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:45 25 4
gpt4 key购买 nike

我有一个看起来像这样的模型

public class User
{
public List<Action> Actions { get; set; }
}

public class Action
{
public DateTime CreatedOn { get; set; }
}

我正在尝试找到一种方法来从所有用户的所有操作中获取 CreatedOn最大值值。

我是 RavenDB 的新手,我不确定我是否应该使用 Map/Reduce 或什么。

最佳答案

这是一个完整的示例:

public class User
{
public string Id { get; set; }
public List<Action> Actions { get; set; }
}

public class Action
{
public DateTime CreatedOn { get; set; }
}

public class ActionCreatedOnResult
{
public DateTime CreatedOn { get; set; }
}

public class Users_ActionCreatedOn : AbstractIndexCreationTask<User, ActionCreatedOnResult>
{
public Users_ActionCreatedOn()
{
Map = users => from user in users
from action in user.Actions
select new
{
action.CreatedOn
};
Store(x => x.CreatedOn, FieldStorage.Yes);
}
}

class Program
{
static void Main(string[] args)
{
using (var documentStore = new DocumentStore{ Url = "http://localhost:8080/" })
{
documentStore.Initialize();

IndexCreation.CreateIndexes(typeof(Users_ActionCreatedOn).Assembly, documentStore);

using (var documentSession = documentStore.OpenSession())
{
var result = documentSession.Query<ActionCreatedOnResult, Users_ActionCreatedOn>()
.OrderByDescending(x => x.CreatedOn)
.AsProjection<ActionCreatedOnResult>()
.FirstOrDefault();
}
}
}
}

关于c# - 如何在 RavenDB 中获取嵌入式文档属性的聚合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com