Concat嵌套字段值(如果存在)

时间:2019-04-19 10:43:46

标签: mongodb aggregation-framework

我正在努力连接嵌套字段的值,但无法通过聚合成功

我已经编写了代码来连接数据库中的5个嵌套字段

名为“ level”的集合中的地址字段如下

"address":{
    "flatNo" : "101",
    "street" : "amprapali",
    "city" : "jaipur",
    "zip" : "123456",
    "state" : "rajasthan",
    "country" : "INDIA"
}

我想要什么输出

"address":"#101, amprapali, jaipur, 123456, rajasthan, INDIA"

我的代码:

aggregation_pipeline = [ 
    {
        "$project":
        {
            "address": { "$concat": [ "#", "$address.flatNo", ", ", "$address.street", ", ", "$address.city", ", ", "$address.zip", ", ", "$address.state", ", ", "$address.country" ] }
        }


    },
    {
        "$out": "mod_collection"
    }
]
cursor = db['level'].aggregate(aggregation_pipeline, allowDiskUse=True)
cursor.close()

我得到了预期的结果,但是如果源数据库中不存在5个字段中的任何一个,则地址字段将填充null

我的要求是合并地址字段的所有现有字段值,并用','分隔

当地址下的所有字段都不存在时,如何忽略null值?

0 个答案:

没有答案