mongodb - 将值转换为键 mongodb 聚合
问题描述
以下是聚合查询的结果:
[
{
"_id": "5a9433fee5878a000f7cba09",
"trendingStats": {
"trendingArr": [],
"trendingScore": 0
}
},
{
"_id": "5a942f79e5878a000f7cba06",
"trendingStats": {
"trendingArr": [],
"trendingScore": 0
}
}
]
这是查询:
collection.aggregate([
{$project:{
'trendingStats':{
'$ifNull':['$trendingStats',{'trendingArr':[],'trendingScore':0}
}
}
]);
我希望结果是一个具有以下格式的文档:
{'5a9433fee5878a000f7cba09':{'trendingArr':[],trendingStats:0},
'5a942f79e5878a000f7cba06':{'trendingArr':[],trendingStats:0},
}
有没有办法可以将结果转换为这样的一个文档?
解决方案
您可以在之后使用以下阶段$project
{ "$group": {
"_id": null,
"data": {
"$push": {
"k": { "$toString": "$_id" },
"v": "$trendingStats"
}
}
}},
{ "$replaceRoot": {
"newRoot": { "$arrayToObject": "$data" }
}}
[
{
"5a942f79e5878a000f7cba06": {
"trendingArr": [],
"trendingScore": 0
},
"5a9433fee5878a000f7cba09": {
"trendingArr": [],
"trendingScore": 0
}
}
]
推荐阅读
- sql - 使用 Groupings 查找第二大值
- typescript - 打字稿找不到graphql模块
- excel - 有没有办法使用 VBA 将在 excel 中分组的多个图表复制并粘贴到 powerpoint?
- apache-spark - 纱线队列没有占用全部资源
- ios - 如何将未编码的字符串拆分为字符
- python - 正则表达式 - 删除两个标点符号之间的空格,但不删除标点符号和字母之间的空格
- swift - 如何在 Xcode 11 中同时启用 iCloud 和密钥共享功能?
- powershell - Get-ADGroupMember 和成员的 extensionAttribute5
- docusignapi - 使用带有嵌入签名和休息 api 的 signerMustLoginToSign 时出现问题
- php - 在 PHP 中检测空二维数组的正确语法是什么?