我正在尝试获取匹配文档中field
数组中每个子children
的字节长度。我尝试了一些不利于我的咒语。
我正在使用mongodb 3.6
我有一个mongodb文档,
{
"id": "string",
"other-id": "string",
"children": [
{
"field": "string"
},
{
"field": "string"
},
...
]
}
我尝试过的事情:
[{
"$match": {
"id": {
"$in": ["id1"]
}
}
},
{
"$group": {
"_id": "$otherId",
"childSize": {
"$sum": {
"$size": "$children"
}
}
}
}
]
concat
将列表缩小为单个字符串(不知道我在做什么错,但这不起作用)。如果我可以执行此操作,则可以在$strLenBytes
上使用concatenatedString
来获取结果字节长度。[
{
"$match": {
"id": {
"$in": ["id1"] // Perform the aggregation over a list of documents
}
}
},
{
"$addFields": {
"concatenatedString": {
"$reduce": {
"input": "$children",
"initialValue": "",
"in": {
"$concat": ["$$value", "$$this.field"]
}
}
}
}
}
]
问题:
field
值并串联为单个字符串值。似乎这可能是目前对mongo聚合的限制?解决方法:
有什么想法吗?