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

Hvordan omdøber man et felt i et array med databasekommandoer?

  • Fejlen siger $map s input accepterer referencefelt ved hjælp af $ tegn $version ,
  • vedlæg u objekt i array-parentes for opdatering med en aggregeringspipeline
  • indsæt bare begge felter title og version i $map
  • $unset er ikke påkrævet, fordi $map erstatter gamle data med nye felter i 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
        }
    ]
})

Legeplads

Anden måde, For mere dynamisk tilgang

  • $mergeObjects inde i $map , for at forhindre manuel liste over nøgleværdipar
  • $unset trin for at fjerne name felt fra version matrix
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
        }
    ]
})

Legeplads




  1. Mongodb gemmer listen over objekter

  2. Hvorfor forbindelse til MongoDB fra Node.js er langsom

  3. Flet Mongodb-samling og en Python Dict

  4. MongoDB UpdateFirst-metodebrug