mongodb - 查询嵌套组并插入 mongodb

标签 mongodb aggregation-framework

我是第一次尝试 mongoDB。我需要将我的数据从一个集合聚合到另一个集合。尝试此代码但由于意外错误而未执行:

"unexpected expression $group"

db.import.aggregate([{
        $group: {
            _id: {
                day: "$Day",
                month: "$Month",
                year: "$Year"
            },
            manufacturers: {
                $push: {
                    $group: {
                        _id: {
                            manID: "$Man_ID",
                            man_name: "$Man_Name"
                        },
                        types: {
                            $push: {
                                model_name: "$Model_name",
                                body_type: "$Body_type"
                            }
                        }
                    }
                }
            }
        }
    },
    { $out: "output_doc" }
], {
    allowDiskUse: true,
    cursor: {}
});

预期输出:

["$Day","$Month","$Year",
    ["$Man_ID","$Man_Name", 
       ["$Model_name","$Body_type"]
    ]
]

最佳答案

您可以只推送新的 _id 字段并创建您的 types 数组,而无需任何运算符:

db.import.aggregate([{
    $group: {
        _id: {
            day: "$Day",
            month: "$Month",
            year: "$Year"
        },
        manufacturers: {
            $push: {
                _id: {
                    manID: "$Man_ID",
                    man_name: "$Man_Name"
                },
                types: [{ model_name: "$Model_name", body_type: "$Body_type" }]
            }
        }
    }
}])

关于mongodb - 查询嵌套组并插入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305358/

相关文章:

javascript - 如何查找与查询中具有完全相同数组条目的文档

mongodb - 如何在组内推送多个列的值

Mongodb - 分片 - 同时添加多个分片

mongodb - mongodb 中大嵌套数据的查询性能问题

mongodb - 使用 x509 证书连接到服务

javascript - 将多个文档数组展开为新文档

javascript - MongoDB 在带有附加字段的对象数组上聚合 $lookup

mongodb - 如何在 $nearSphere 查询中使用 $maxDistance 的文档属性?

c++ - 想要更新结果

MongoDB Java 异步驱动程序 : Block<Document> vs SingleResultCallBack<Document>