sql >> Databáze >  >> NoSQL >> MongoDB

Agregujte více polí do jednoho velkého pole pomocí MongoDB

Můžete použít $filter a $setUnion /$concatArrays operátory pro zřetězení a filtrování vašich dokumentů. Také musíte použít $ifNull operátor, který nahradí chybějící pole prázdným polem.

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. Navrhování vztahů Many-to-Many v MongoDB (místo relačních tabulek)

  2. Spuštění Meteoru na localhost selže s RangeError:port by měl být>=0 a <65536:NaN

  3. Podpora Spring Data MongoDB BigDecimal

  4. Mongo agregační rámec:jaká je úroveň uzamčení operace $out poslední fáze?