gpt4 book ai didi

c# - 按 DocumentDB 中的字段分组

转载 作者:行者123 更新时间:2023-11-30 20:40:28 25 4
gpt4 key购买 nike

是否可以以某种方式对 DocumentDB 中的字段(存储过程)进行分组?

假设我有以下集合:

[
{
name: "Item A",
priority: 1
},
{
name: "Item B",
priority: 2
},
{
name: "Item C",
priority: 2
},
{
name: "Item D",
priority: 1
}
]

我想获取最高优先级组中的所有项目(在本例中为优先级 2)。我不知道什么值的优先级最高。即:

[
{
name: "Item B",
priority: 2
},
{
name: "Item C",
priority: 2
}
]

使用一些粗略的 LINQ,它看起来像这样:

var highestPriority = 
collection
.GroupBy(x => x.Priority)
.OrderByDescending(x => x.Key)
.First();

最佳答案

DocumentDB 目前不支持 GROUP BY 或任何其他聚合。它是第二大需求的功能,在 DocumentDB UserVoice 上被列为“正在审核”。 .

同时,documentdb-lumenize是一个以存储过程形式编写的 DocumentDB 聚合库。您将 cube.string 作为存储过程加载,然后使用聚合配置调用它。对于这个例子来说有点矫枉过正,但它完全能够完成你在这里所要求的事情。如果将其传递到存储过程中:

{cubeConfig: {groupBy: "name", field: "priority", f: "max"}}

这应该可以达到你想要的效果。

注意,Lumenize 的功能远不止于此,包括简单的分组与其他函数(总和、计数、最小值、最大值、中位数、p75 等)、数据透视表,以及一直到复杂的 n-每个单元具有多个指标的维度超立方体。

我从未尝试过从.NET 加载cube.string,因为我们使用的是node.js,但它是作为字符串而不是javascript 提供的,因此您可以轻松加载和发送它。

或者,您可以编写一个存储过程来执行此简单的聚合。

关于c# - 按 DocumentDB 中的字段分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373198/

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