gpt4 book ai didi

java - 从文档中获取多个整数,将它们组合起来,除以值并从集合中获取顶部结果

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:02 25 4
gpt4 key购买 nike

我想从 mongodb 集合中获取最高的“全局”值。假设我有这个集合:

[{
"_id": 1,
"elo": {
"kit1": 1020,
"kit2": 1000,
"kit3": 1007
}
},
{
"_id": 2,
"elo": {
"kit1": 1041,
"kit2": 1065,
"kit3": 1051
}
}]

_id: 1 的全局 elo 为 1009_id: 21052

所以我期望的结果是:

[
{
"_id": 2,
"global": 1052
},
{
"_id": 1,
"global": 1009
}
]

我写了这个查询:

   ([
{ $group: ("global": { $sum: "/*What to do here when I have multiple values*/" } } },
{ $sort: { "global": -1 } },
{ $limit: 10 }}
])

但我被困在 $group 部分

最佳答案

我最终得到了这个解决方案:

aggregate(asList(
new Document("$project",
new Document("global", new BsonArray(getKitArray()))),
new Document("$skip", pos),
new Document("$limit", 1)));

因为我知道套件 ID,所以我基本上将它们包装在数组中,这解决了问题

至于 getKitArray() 我用的是这个

List<BsonValue> kits = new ArrayList<>();
for (int i = 0; i < kits.size(); i++) {
kits.add(new BsonString("$" + ArenaKit.kits.get(i).id));
}
return kits;

关于java - 从文档中获取多个整数,将它们组合起来,除以值并从集合中获取顶部结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267222/

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