Arrays 获取mongo中arrayfield中每个子文档的字段的默认值

Arrays 获取mongo中arrayfield中每个子文档的字段的默认值,arrays,mongodb,aggregation-framework,Arrays,Mongodb,Aggregation Framework,我有这样的文件- { "Details": "WorkProfile" : [ { "Company" : "UPS", "JobTitle" : "Preload Package Handler", "JobSkills" : {

我有这样的文件-

{
    "Details": "WorkProfile" : [
                        {
                                "Company" : "UPS",
                                "JobTitle" : "Preload Package Handler",
                                "JobSkills" : {
                                        "CommonSkills" : [
                                                ObjectId("5ad5ab860b94c96c738e911e")
                                        ],
                                        "OtherSkills" : [
                                                ObjectId("5ad5ab860b94c96c738e9208")
                                        ]
                                }
                        },
                        {
                                "Company" : "L&L Tent and Party",
                                "JobTitle" : "Delivery Driver/ Tent Installation",
                                "JobSkills" : {
                                        "CommonSkills" : [
                                                ObjectId("5ad5ab860b94c96c738e9227")
                                        ],
                                        "OtherSkills" : [ ]
                                }
                        },
                        {
                                "Company" : "All Pro Movers",
                                "JobTitle" : "Mover"
                        },
                        {
                                "Company" : "Carolina Farmin",
                                "JobTitle" : "Head of Cullinary"
                        }
                ],

}
我想为
WorkProfile
部分中的每个子文档获取
OtherSkills
。我试过以下方法

db.Collection.aggregate([{$match: {"DocId": "669f4a8f-13cd-4780-8115-e3f29b0d9b4f"}}, {$project: {"JobSkills": "$Details.WorkProfile.JobSkills.OtherSkills"}}]).pretty()
{
        "_id" : ObjectId("5ad5ab89af2808b739ba6aac"),
        "JobSkills" : [
                [
                        ObjectId("5ad5ab860b94c96c738e9208")
                ],
                [ ]
        ]
}
现在,如果该字段在该子文档中不存在,我想为该字段设置一个默认值。为此,我尝试使用这样的命令

 db.ResumeParsedData.aggregate([{$match: {"DocId": "669f4a8f-13cd-4780-8115-e3f29b0d9b4f"}}, {$project: {"JobSkills": {$ifNull: ["$ResumeDetails.WorkProfile.JobSkills.OtherSkills", "null"]}}}]).pretty()
{
        "_id" : ObjectId("5ad5ab89af2808b739ba6aac"),
        "JobSkills" : [
                [
                        ObjectId("5ad5ab860b94c96c738e9208")
                ],
                [ ]
        ]
}
但我得到的结果与第一次查询中的结果相同。如果子文档中不存在字段,我应该如何为该字段指定默认值

我期待上述文件的输出-

{
    "_id" : ObjectId("5ad5ab89af2808b739ba6aac"),
    "JobSkills" : [
            [
                    ObjectId("5ad5ab860b94c96c738e9208")
            ],
            [ ],
            "null",
            "null"
    ]
}

您需要使用

产出:

{
    "_id" : ...,
    "JobSkills" : [
            [
                    ObjectId("5ad5ab860b94c96c738e9208")
            ],
            [ ],
            "null",
            "null"
    ]
}
{
    "_id" : ...,
    "JobSkills" : [
            [
                    ObjectId("5ad5ab860b94c96c738e9208")
            ],
            [ ],
            "null",
            "null"
    ]
}