MST

星途 面试题库

面试题:MongoDB Shell下针对复杂数组变量的编辑与聚合操作

给定一个MongoDB Shell变量var complexArray = [ { id: 1, data: [ { subId: 11, subValue: 'a' }, { subId: 12, subValue: 'b' } ] }, { id: 2, data: [ { subId: 21, subValue: 'c' }, { subId: 22, subValue: 'd' } ] } ]; 要求使用聚合操作,筛选出每个子文档中subValue为偶数长度字符串的所有文档,并将筛选后的结果更新到原变量中,写出具体实现代码。
47.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
complexArray = complexArray.aggregate([
    {
        $unwind: "$data"
    },
    {
        $match: {
            "data.subValue": {
                $mod: [ { $strLenCP: "$data.subValue" }, 2 ]
            }
        }
    },
    {
        $group: {
            _id: "$id",
            data: { $push: "$data" }
        }
    },
    {
        $project: {
            _id: 0,
            id: "$_id",
            data: 1
        }
    }
]);