MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Projizieren Sie verschiedene eingebettete Strukturen auf denselben Namen

Sie können den $ifNull verwenden Operator zu $project das Feld "Hostname".

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"}
])