gpt4 book ai didi

mongodb - Mongodb 聚合创建输出为 {"key": "value"} from 2 arrays

转载 作者:可可西里 更新时间:2023-11-01 09:28:39 25 4
gpt4 key购买 nike

我有一个关于如何从 2 个数组创建输出的问题,一个数组带有翻译键,另一个数组带有翻译,我将输出为

"translation_key":"value"  

当前输出:
{

        "_id" : ObjectId("5bfc0b2b30c4683f585078fb"),
"translation" : [
"hour",
"day"

],
"translation_key" : [
"HOUR_TEXT",
"DAY_TEXT"


],
"locale_id" : "EN_en"
}

输出应该是:

{
"EN_en" :{
"HOUR_TEXT" :"hour",
"DAY_TEXT" :"day",
}
}

最佳答案

您可以使用以下聚合

您可以使用 $range从两个数组中获取索引并可以为结果数组创建键 (k) 和值 (v) 对,最后 $arrayToObject将结果数组转换为单个文档。

db.collection.aggregate([
{ "$replaceRoot": {
"newRoot": {
"$arrayToObject": [[
{
"k": "$locale_id",
"v": {
"$arrayToObject": {
"$map": {
"input": { "$range": [0, { "$size": "$translation_key" }] },
"in": {
"k": { "$arrayElemAt": ["$translation_key", "$$this"] },
"v": { "$arrayElemAt": ["$translation", "$$this"] }
}
}
}
}
}
]]
}
}}
])

哪个返回

[
{
"EN_en": {
"DAY_TEXT": "day",
"HOUR_TEXT": "hour"
}
}
]

关于mongodb - Mongodb 聚合创建输出为 {"key": "value"} from 2 arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494235/

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