我正在模拟Firebase Realtime DB的RestFul API。因为在上传数据时没有遵循标准的数据结构。
我遇到了一个复杂的情况,我想将嵌套文档拆分为多个文档,以便使用mongo-query而不是服务器对其执行进一步的排序聚合。
下面是我使用$project
提取的数据
{
"data": {
"8787879798": {
"value": 89
},
"c5ca5ebd804b4b1aab82348a4070fa78": {
"sample": 78
},
"88dc2f042c3e4aa3a2a2378e48444000": {
"sample": 78
},
"7061e88f77754b6e94b3b2ed3bf7513f": {
"sample": 78
},
"033f120577c443548d4cdc4425a7767f": {
"sample": 78
},
"33fb18ba5e3d41c5a6b9b89433ab231d": {
"sample": 78
},
"5f9c6d4bf0e3416b9b963dbf5d15021d": {
"sample": 78
}
}
}
下面是查询
[
{
$project:
/**
* specifications: The fields to
* include or exclude.
*/
{
_id: 0,
data: "$foo.bar.xyz",
},
},
]
我想得到这样的输出:
其中每个子文档都成为文档
{
"8787879798": {
"value": 89
},
"c5ca5ebd804b4b1aab82348a4070fa78": {
"sample": 78
},
"88dc2f042c3e4aa3a2a2378e48444000": {
"sample": 78
},
"7061e88f77754b6e94b3b2ed3bf7513f": {
"sample": 78
},
"033f120577c443548d4cdc4425a7767f": {
"sample": 78
},
"33fb18ba5e3d41c5a6b9b89433ab231d": {
"sample": 78
},
"5f9c6d4bf0e3416b9b963dbf5d15021d": {
"sample": 78
}
}
1条答案
按热度按时间7kqas0il1#
在流水线中使用
$replaceRoot
stage,如下所示:Playground link.