Heim > Backend-Entwicklung > Golang > So entfernen Sie zusätzliche Schlüssel, die beim Einfügen einer verschachtelten Struktur in Mongodb hinzugefügt wurden

So entfernen Sie zusätzliche Schlüssel, die beim Einfügen einer verschachtelten Struktur in Mongodb hinzugefügt wurden

王林
Freigeben: 2024-02-09 12:06:18
nach vorne
1083 Leute haben es durchsucht

如何删除在 mongodb 中插入嵌套结构时添加的附加键

PHP-Editor Apple bringt Ihnen einen Artikel darüber, wie Sie zusätzliche Schlüssel entfernen, die beim Einfügen verschachtelter Strukturen in Mongodb hinzugefügt wurden. Wenn wir Mongodb zum Speichern von Daten verwenden, fügen wir der verschachtelten Struktur manchmal einige zusätzliche Schlüssel hinzu, um die Abfrage und den Betrieb zu erleichtern. Aber wie entfernen wir diese zusätzlichen Schlüssel, wenn wir sie nicht mehr benötigen? Dieser Artikel bietet Ihnen eine einfache und effektive Methode, mit der Sie die zusätzlichen Schlüssel, die beim Einfügen verschachtelter Strukturen in Mongodb hinzugefügt werden, problemlos entfernen können. Lass uns einen Blick darauf werfen!

Frageninhalt

Angenommen, dies ist meine Strukturdefinition,

type partialContent struct {
  key   string   `json:"key" bson"key"`
  value string   `json:"value" bson:"value"`
}

type content struct {
  id string `json:"id" bson:"_id,omitempty"`
  partialContent
}
Nach dem Login kopieren

Wenn Inhalt in MongoDB gespeichert wird, wird er als

gespeichert
{
  "_id": ObjectID,
  "partialcontent": {
    "key": "...",
    "value": "..."
  }
}
Nach dem Login kopieren

Aber JSON-Unmarshalling kehrt zurück

{
  "_id": ObjectID,
  "key": "...",
  "value": "..."
}
Nach dem Login kopieren

Wie entferne ich zusätzliche Schlüssel partialcontent in MongoDB?

Workaround

Zuerst müssen Sie die Strukturfelder exportieren, sonst überspringt der Treiber diese Felder.

Wenn Sie das Dokument nicht in MongoDB einbetten möchten, verwenden Sie die ,inlinebson-Tag-Option:

type PartialContent struct {
    Key   string `json:"key" bson"key"`
    Value string `json:"value" bson:"value"`
}

type Content struct {
    ID             string `json:"id" bson:"_id,omitempty"`
    PartialContent `bson:",inline"`
}
Nach dem Login kopieren

Fügen Sie diesen Wert ein:

v := Content{
    ID: "abc",
    PartialContent: PartialContent{
        Key:   "k1",
        Value: "v1",
    },
}
Nach dem Login kopieren

Dieses Dokument wird in MongoDB generiert:

{ "_id" : "abc", "key" : "k1", "value" : "v1" }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo entfernen Sie zusätzliche Schlüssel, die beim Einfügen einer verschachtelten Struktur in Mongodb hinzugefügt wurden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage