MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Agreguj wiele tablic w jedną ogromną tablicę za pomocą MongoDB

Możesz użyć $filter i $setUnion /$concatArrays operatorów do łączenia i filtrowania dokumentów. Musisz także użyć $ifNull operatora, aby zastąpić brakujące pole pustą tablicą.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co się stanie, jeśli odprężenie zostanie zastosowane do pola, którego nie ma podczas używania agregacji w manguście?

  2. mongodb jak zwrócić listę wartości tylko z zapytania find

  3. Serializuj/deserializuj dokument MongoDB Bson przy użyciu oficjalnego sterownika C#

  4. Nie można utworzyć indeksu w mongodb, klucz jest za duży do indeksowania

  5. Czy można uzyskać pojedynczy wynik w sumie?