sql >> Database teknologi >  >> NoSQL >> MongoDB

Saml flere arrays i et stort array med MongoDB

Du kan bruge $filter og $setUnion /$concatArrays operatører til at sammenkæde og filtrere dine dokumenter. Du skal også bruge $ifNull operatør for at erstatte det manglende felt med et tomt array.

db.collection.aggregate([
    { "$project": { 
        "web_images": { 
            "$filter": { 
                "input": { 
                    "$setUnion": [ 
                        { "$ifNull": [ "$pictures", [] ] },
                        { "$ifNull": [ "$logos", [] ] }
                    ]
                }, 
                "as": "p", 
                "cond": { "$eq": [ "$$p.web", "true" ] } 
            } 
        } 
    }},
    { "$match": { "web_images.0": { "$exists": true } } }
])



  1. Mongodb styrtede ned med Ugyldig adgang på adresse - segmenteringsfejlsignal 11 - version 2.6

  2. Elem match returnerer alle data, mens jeg kun har brug for de valgte data

  3. Underdokumentindeks i mongo

  4. Spring Boot med Session/Redis Serialiseringsfejl med dårlige Active Directory Ldap-legitimationsoplysninger