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

Jak zmienić nazwę pola w tablicy za pomocą poleceń bazy danych?

  • Błąd mówi $map input akceptuje pole referencyjne za pomocą $ podpisz $version ,
  • załącz u obiekt w nawiasie tablicy dla aktualizacji z potok agregacji
  • po prostu wstaw oba pola title i version w $map
  • $unset nie jest wymagane, ponieważ $map zastąpi stare dane nowymi polami w in
db.runCommand({
    update: 'apps',
    updates: [
        {
            q: { "versions.name": { $exists: true } },
            u: [{
                $set: {
                    versions: {
                        $map: {
                            input: "$versions",
                            in: {
                                "title": "$$this.name",
                                "version": "$$this.version"
                            }
                        }
                    }
                }
            }],
            multi: true
        }
    ]
})

Plac zabaw

Drugi sposób, dla bardziej dynamicznego podejścia

  • $mergeObjects wewnątrz $map , aby zapobiec ręcznej liście par klucz-wartość
  • $unset etap do usunięcia name pole z version tablica
db.runCommand({
    update: 'apps',
    updates: [
        {
            q: { "versions.name": { $exists: true } },
            u: [
              {
                $set: {
                    versions: {
                        $map: {
                            input: "$versions",
                            in: {
                                $mergeObjects: [
                                    "$$this",
                                    { "title": "$$this.name" }
                                ]
                            }
                        }
                    }
                }
              },
              { $unset: "versions.name" }
            ],
            multi: true
        }
    ]
})

Plac zabaw




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb $w przeciw polu obiektów tablicy zamiast obiektów tablicy

  2. Zaktualizuj osadzony dokument w mongodb za pomocą C#

  3. Mongodb:nie udało się połączyć z serwerem przy pierwszym połączeniu

  4. Sterownik php MongoDB powodujący awarię Apache w XAMPP OS X

  5. Testowanie integracji z Testcontainerami + Quarkus + MongoDB