我有以下文件:
{
"Sigle_1": "BIOS",
"Sigle_2": "BFTA"
},
{
"Sigle_1": "BERP",
"Sigle_2": "BEST"
},
{
"Sigle_1": "BHDL",
"Sigle_2": "BIOS"
},
{
"Sigle_1": "BIPM",
"Sigle_2": "BEST"
},
{
"Sigle_1": "BHDL",
"Sigle_2": "BIOS"
}
如何发出请求,将Sigle\U 1和Sigle\U 2连接起来,并将值reslut分组?
预期结果示例:
{
"Sigle": "BIOS",
},
{
"Sigle": "BFTA",
},
{
"Sigle": "BERP",
},
{
"Sigle": "BEST",
},
{
"Sigle": "BHDL",
},
{
"Sigle": "BIPM",
}
我试过了,但还不完全
db.users.aggregate([{$group: {_id: {Sigle1: '$Sigle_1', Sigle2: '$Sigle_2'}}}])
我可以在单个查询中添加另一个字段!!!
{
"Sigle_1": "BIOS",
"Sigle_2": "BFTA",
"Name_1": "Basic Input Output System",
"Name_2": "Belgian Food Truck Association"
},
{
"Sigle_1": "BERP",
"Sigle_2": "BEST",
"Name_1": "British Experimental Rotor Programme",
"Name_2": "Board of European Students of Technology"
},
{
"Sigle_1": "BHDL",
"Sigle_2": "BIOS",
"Name_1": "B Hardware Description Language",
"Name_2": "Basic Input Output System"
},
{
"Sigle_1": "BIPM",
"Sigle_2": "BEST",
"Name_1": "Brevet d'initiation au parachutisme militaire",
"Name_2": "Board of European Students of Technology"
},
{
"Sigle_1": "BHDL",
"Sigle_2": "BIOS",
"Name_1": "B Hardware Description Language",
"Name_2": "Basic Input Output System"
}
您需要在此处使用$方面
$组
分离
单列1
和
单列2
,然后使用
$Concatarray
合并两个数组,最后使用
$组
区分整个数据
db.collection.aggregate([
{ "$facet": {
"array1": [
{ "$group": {
"_id": "$Sigle_1"
}}
],
"array2": [
{ "$group": {
"_id": "$Sigle_2"
}}
]
}},
{ "$addFields": {
"data": {
"$concatArrays": ["$array1", "$array2"]
}
}},
{ "$unwind": "$data" },
{ "$replaceRoot": { "newRoot": "$data" }},
{ "$group": {
"_id": "$_id"
}},
{ "$project": { "Sigle": "$_id", "_id": 0 }}
])
输出
[
{
"Sigle": "BFTA"
},
{
"Sigle": "BEST"
},
{
"Sigle": "BHDL"
},
{
"Sigle": "BERP"
},
{
"Sigle": "BIPM"
},
{
"Sigle": "BIOS"
}
]
你在这里检查一下
问题内容: 我发现的唯一接近的事情是:Elasticsearch中的多个分组方式 基本上,我试图获得与以下查询等效的ES : 年龄和性别本身很容易获得: 这使: 但是现在我需要这样的东西: 请注意,这是针对年龄范围的“映射”,因此它们实际上表示的是:)而不是数字。例如,性别[1](“男性”)细分为[246]的年龄范围[0](“18岁以下”)。 问题答案: 由于您只有2个字段,因此一种简单的方法是使
我可以同时使用和吗?
问题内容: 我正在使用Angular-Filter的groupBy过滤器。 来自GitHub的示例 : 因此,该示例按 team 对玩家集合进行 分组 。想象一下,每个玩家对象都有一个 年龄 属性: 我想GROUP BY 团队 和 年龄 。我怎样才能做到这一点? 问题答案: 遵循多个字段的示例
需要帮助的一个案件流与分组由我希望能够分组由2个不同的字段,并有其他大小数字段的总和,根据不同的分组。以下是我的实体: 让我们假设我有以下列表作为输入: 下面有一个解决方案的开头,但我在添加第二个聚合来总结余额的时候阻止了:
这将产生以下结果 我所感兴趣的实际上只是上面结果中的列表,我希望理想地将其作为groupby操作的一部分来完成。我知道这是可以做到的,例如,通过循环结果映射结构。但是有没有一种方法可以使用流来实现它呢?
问题内容: 我正在尝试按其字段(即 Person.java) 对Java对象进行分组 __ 因此,如果我有 n个 Person对象,那么将所有人都以“ David”命名的最简单的方法是? 我在Google上发现了此文件(但无法编译),这似乎是我正在寻找的东西:http : //www.anzaan.com/2010/06/grouping-objects- using-objects-proper