Gibt es eine Möglichkeit, ein Skript zu schreiben, das ein Dokument aktualisiert, indem ein doppeltes Feld mit einem anderen Wert hinzugefügt wird? Ich kann set nicht verwenden, da dies den vorhandenen Wert ersetzt. Ich kann Push nicht verwenden, da das Feld in einem Objekt und nicht in einem Array ist. Ich habe sogar versucht, das neue Feld mit einem anderen Namen zu erstellen und umzubenennen, wodurch auch das vorhandene Feld ersetzt wird.MONGODB - Doppeltes Feld mit anderem Wert hinzufügen
Antwort
Sie können keine doppelten Felder in einem Mongo-Datensatz haben. Eine Mongo-Sammlung ist eine Sammlung von Dokumenten, auch bekannt als Objekte. Sie können kein doppeltes Feld in einem Objekt haben und Mongo ist nicht anders.
Ich habe bereits doppelte Felder im selben Dokument, auf das ich mich beziehe (siehe oben). Ich habe diese nicht selbst hinzugefügt, so dass sie möglicherweise durch manuelle Bearbeitung des Dokuments hinzugefügt wurden, anstatt ein Skript zu verwenden. Allerdings muss ich ein Skript erstellen, um diese Änderungen zu db in anderen env zu fördern – SuperLauraRae
Ich bin nicht sicher, die Förderung dieser Änderungen wäre der Weg, den ich gehen würde. Ich würde gerne wissen, was dazu geführt hat, dass dies überhaupt passiert ist und das beheben. Wenn Sie doppelte Felder für eine db bewerben möchten, woher wissen Sie dann, auf welche Sie in Zukunft verweisen müssen? Vielleicht verstehe ich die Situation nicht, sorry. – jmcgui05
MongoDB (und jede andere Datenbank, die ich bisher kennengelernt habe) basiert auf der Idee, dass einzelne Felder identifizierbar sind, so dass sie gefiltert, gruppiert, sortiert werden können, usw ... Das erklärt auch warum MongoDB bietet keine Unterstützung für das Szenario, dem Sie gegenüberstehen. Davon abgesehen kann MongoDB als ein dummer Datenspeicher für beliebige JSON-Daten verwendet werden. Und die JSON-Spezifikation sagt nichts über doppelte Feldnamen aus, weshalb Sie ein solches Dokument wahrscheinlich in MongoDB speichern können.
Wie auch immer, es gibt keine Möglichkeit zu erreichen, was Sie wollen, ohne das gesamte Dokument zu laden, es zu ändern (durch Hinzufügen der doppelten Felder) und dann das gesamte Dokument zu ersetzen. Das wird jedoch funktionieren.
Ich kann mir persönlich kein vernünftiges Szenario vorstellen, in dem diese Art von Dokument sinnvoll wäre. Ich würde Ihnen daher dringend empfehlen, Ihre Dokumentenstruktur erneut zu besuchen.
- 1. Mysql Aktualisierungsfeld mit anderem Feld
- 2. Doppeltes JSON Feld mit Jackson
- 3. MongoDB: Aggregat $ Projekt Feld mit statischem Wert hinzufügen
- 4. PostgreSQL finden doppeltes Feld
- 5. hinzufügen Feld in mongodb aggregieren
- 6. Wert zu Funktion von anderem Controller hinzufügen
- 7. Doppeltes Feld in Antwort symfony2 Einheit
- 8. MongoDB: Feld in jedem Array Elemente hinzufügen
- 9. Hinzufügen von Wert zu MongoDB mit NodeJS
- 10. MongoDB: neueste Wert für jedes Feld
- 11. MongoDB - Wie Feld zu extrahieren, mit max Wert
- 12. Wie Wert in mehr als ein Feld finden mongodb mit
- 13. Wie ein Feld mit seinem vorherigen Wert in MongoDB/Mongoose
- 14. Matlab aufeinanderfolgenden Nullwert ersetzen, mit anderem Wert
- 15. AngularJS: Bedingte Min. Basierend auf anderem Feld
- 16. Zählwerte Basis auf anderem Feld in mysql
- 17. MongoDB verschlüsselte Feld Teilsuche
- 18. Wert von anderem Datenrahmen ersetzen
- 19. Doppeltes Zitat auf doppelten Namen hinzufügen
- 20. Suche mongodb _id Feld mit Regex
- 21. Wert in jlist java von mongodb hinzufügen
- 22. Mysql hinzufügen NULL Wert in Feld:
- 23. MongoDB: add Feld untergeordnetes Element
- 24. Wie Elemente eines Array von Feld in Mongodb hinzufügen?
- 25. Doppeltes Format mit Swift
- 26. MongoDB C++, Hinzufügen von ISODate-Wert beim Einfügen
- 27. wie Spalte mit Schlüssel und Wert in JSON Mongodb hinzufügen?
- 28. Dynamisch Feld zum Modell Keystonejs und Mongodb hinzufügen
- 29. MongoDB ein Feld/Schlüssel umbenennen
- 30. Logstash - ein bestimmtes Feld mit einem bestimmten Wert Hinzufügen
Möglicherweise möchten Sie Code oder zumindest ein Beispiel für das Dokument und das Feld, das Sie replizieren möchten, anzeigen. Bitte lesen Sie auch [Fragen]. – Aron
{ "_id": "Mapping", "Mapping": { "A": { "id": "A1", "Mapping": { "Required": { "Code": " code ", " id1 ":" id ", " id2 ":" id ", " id2 ":" daten.id ", " referenz ":" referenz ", " menge ":" daten.menge “ "Preis": "data.price", "type": "data.type" } } } } } – SuperLauraRae
Above i s ein verkürztes Beispiel für das Dokument, das ich zu aktualisieren versuche. Ich möchte ein anderes Referenzfeld mit einem anderen Wert erstellen, ähnlich wie es zwei ID2-Felder mit zwei verschiedenen Werten gibt. – SuperLauraRae