MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Projeter différentes structures embarquées sur le même nom

Vous pouvez utiliser le $ifNull opérateur à $project le champ "nom d'hôte".

cmp = db['computers'].aggregate([
    {"$project": { 
        "u_hostname": {
            "$ifNull": [
                "$hostnames.name", 
                { "$map": { 
                    "input": {"$literal": ["A"]}, 
                    "as": "el", 
                    "in": "$hostname"
                }}
            ]
        }, 
        "_id": 0, 
        "u_ipv4": "$addresses.ipv4"
    }},
    {"$unwind": "$u_hostname"}
])