gpt4 book ai didi

MongoDB:数组字段中不同值的总数

转载 作者:行者123 更新时间:2023-12-04 15:32:10 25 4
gpt4 key购买 nike

我有一些简单的文档,比如

{
...,
things: ["a", "b", "c"]
},
{
...,
things: ["b", "d", "e"]
},
...

我想要不同事物的总数,在这种情况下:["a","b","c","d","e"],结果应该是5.

如何使用聚合查询来做到这一点?

我目前的尝试是

[
{
"$group": {
"_id": "things",
"things": { "$push": "$things" }
}
},
{
"$addFields": {
"allThings": {
"$reduce": {
"input": "$things",
"initialValue": [],
"in": {
"$concatArrays": ["$$value", "$$this"]
}
}
}
}
}
]

它在单个数组中生成所有字段,但我现在不知道如何计算其中的不同值。

很高兴得到任何帮助!

最佳答案

这实际上是我编写的第一个 MongoDB 查询。它有效,但很高兴听到改进:

db.collection.aggregate([
{
$group: {
_id: null,
things: { $push: "$things"}
}
},
{
$project: {
_id: 0,
things: {
$reduce: {
input: "$things",
initialValue: [],
in: {
$setUnion: [ "$$this", "$$value"]
}
}
}
}
},
{
$project: {
item: 1,
numberOfUniqueThings: { $size: "$things" }
}
}
])

关于MongoDB:数组字段中不同值的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61046420/

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