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

Tablice Zip z MongoDB

Począwszy od MongoDB 3.4, możemy użyć $zip operator do spakowania naszych tablic.

Biorąc to pod uwagę, nie możemy uzyskać oczekiwanego wyniku, chyba że znasz długość swojej tablicy.

db.collection.aggregate( [ 
    { "$project": { 
        "zipped": { 
            "$zip": { "inputs": [ "$A", "$B", "$C" ] } 
        } 
    }}
])

co daje:

{ 
    "_id" : ObjectId("578f35fb6db61a299a383c5b"),
    "zipped" : [
        [ "A1", "B1", 100 ],
        [ "A2", "B2", 200 ],
        [ "A3", "B3", 300 ]
    ]
}

Jeśli znamy liczbę elementów w każdej podtablicy, możemy użyć $mapa operator zmiennej, który zwraca tablicę poddokumentu.

W $mapie wyrażenie, musimy użyć $arrayElemAt operator do ustawienia wartość naszego pola A, B i C.

db.collection.aggregate( [ 
    { "$project": { 
        "zipped": { 
            "$map": { 
                "input": { 
                    "$zip": { "inputs": [ "$A", "$B", "$C" ] } 
                }, 
                "as": "el", 
                "in": { 
                    "A": { "$arrayElemAt": [ "$$el", 0 ] }, 
                    "B": { "$arrayElemAt": [ "$$el", 1 ] }, 
                    "C": { "$arrayElemAt": [ "$$el", 2 ] } 
                } 
            }
        }
    }}
] )

co daje:

{
    "_id" : ObjectId("578f35fb6db61a299a383c5b"),
    "zipped" : [
        {
            "A" : "A1",
            "B" : "B1",
            "C" : 100
        },
        {
            "A" : "A2",
            "B" : "B2",
            "C" : 200
        },
        {
            "A" : "A3",
            "B" : "B3",
            "C" : 300
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak poprawić wydajność update() i save() w MongoDB?

  2. Czy mogę użyć '$set' na osadzonym dokumencie, gdy używam zmiennej jako nazwy pliku w MongoDB?

  3. Podczas tworzenia pierwszego użytkownika administratora w klastrze mongdb pojawia się błąd, nie można dodać użytkownika:nie ma uprawnień administratora do wykonania polecenia

  4. Nie można ponownie uruchomić mongodb na Ubuntu 11.04

  5. Mongoose .save() zwraca pusty obiekt błędu, nie zapisuje w DB