Angenommen, ich habe zwei Felder F1 und F2. Ich möchte F1 aktualisieren, um F1 + ", " + F2
zu werden. Kann ich das mit einem einzigen Update-Befehl in Mongo tun?Aktualisieren eines Dokumentfeldes in Mongo basierend auf dem Wert eines anderen Feldes
Antwort
Nein, das geht nicht. Sie können keine Ausdrücke in mongodb-Aktualisierungen verwenden. Die einzige Möglichkeit besteht darin, dieses Dokument zum Client zu holen, dort einen neuen Feldwert zu erstellen und eine vorbereitete Aktualisierungsanweisung auszugeben.
Wie es von Sergio erwähnt wurde, können Sie dies nicht einmal ein Jahr nach der Frage mit der Version 2.4.8 tun. Aber wenn Sie dies tun, dann können Sie diese verwenden
db.yourCollection.find({}).forEach(function(doc) {
doc.F1 = doc.F1 + ", " + doc.F2;
delete doc.F2;
db.yourCollection.save(doc);
});
Eigentlich traf ich mit MongoDB andere Wände, ernster als das. Am Ende habe ich eine schmerzhafte Entscheidung getroffen, mein Backend von MongoDB nach PostgreSQL zu migrieren. – mark
Können Sie Ihre Probleme beschreiben? Es könnte für andere nützlich sein, aus Ihren Fehlern zu lernen :-) –
** Nicht-zählende B-Bäume. ** Ich muss Berichte mit Zählungen von Aufzeichnungen produzieren, die verschiedenen Kriterien entsprechen. Es ist ein Showstopper. ** Eindeutige optionale Felder ** Ich habe einige Felder, die eindeutig sind, wenn sie nicht null sind, aber dort können viele Datensätze mit Nullwerten vorhanden sein. Die Art und Weise, wie mongo solche Felder indiziert, macht es unmöglich, nach Datensätzen mit dem Nullwert zu suchen - Sie müssen Ersatzwerte verwenden, die nicht Null sind, was wirklich mühsam ist. ** Wild auf dem Speicher ** MongoDB ist wirklich serverorientiert, es toleriert keine andere laufende Anwendung, weil es aufgrund seines Designs den gesamten RAM benötigt. – mark
- 1. SQL - Aktualisieren eines Feldes
- 2. ein Feld mit dem Wert eines anderen Felds aktualisieren
- 3. mysql Update auf Bedingung eines anderen Feldes
- 4. Erstellen eines "anderen" Feldes
- 5. Disable Dropdownlist basierend auf dem ausgewählten Wert eines anderen
- 6. Hinzufügen eines Feldes zu einer Datei basierend auf Checkbox-Wert
- 7. MySQL - Wie basierend auf dem Wert eines anderen SELECT
- 8. Datepicker - set minDate basierend auf dem Wert eines anderen Elements
- 9. Bedingte Parameter basierend auf dem Wert eines anderen Parameters
- 10. XSLT Änderungswert Knoten basierend auf dem Wert eines anderen Knotens
- 11. Wie kann man einen Wert von einer Gruppierungssumme ausschließen, basierend auf einem Wert eines anderen Feldes?
- 12. Anguilla - Aktualisieren eines Feldes Wert von einem Popup?
- 13. Oracle: Zeile beim Aktualisieren eines Feldes kopieren
- 14. Wenn Sie SELECT verwenden, können Sie den Wert eines zurückgegebenen Feldes basierend auf anderen Feldern ändern?
- 15. awk Wert des Feldes zu ersetzen, basierend auf einem anderen
- 16. Wie nur Wert eines Feldes in mongodb
- 17. Aktualisieren Eintrag basierend auf dem vorherigen Wert
- 18. ein Feld Form je nach Wert eines anderen Feldes
- 19. Schienen validieren Modellattribut basierend auf Wert eines anderen Attributs
- 20. Umbenennen der Datei basierend auf dem Dateinamen eines anderen Dateityps
- 21. Wert eines Feldes an Silverlight Converter übergebenParameter
- 22. Filtern eines Panda Datenrahmen basierend auf dem Wert und Zeit
- 23. Sortieren mehrdimensionales Array basierend auf dem Wert eines bestimmten Index
- 24. In SSRS: So deaktivieren Sie den Date-Parameter basierend auf dem Wert eines anderen Parameters
- 25. Ein Feld schreibgeschützt in Django Admin erstellen, basierend auf dem Wert eines anderen Felds
- 26. Datentyp eines Feldes
- 27. SQL-Anweisung zum Erstellen eines Feldes basierend auf einem anderen Feld für Joomla Artikeldatenbank
- 28. Wie setze ich den Standardfeldwert auf den Wert eines anderen Feldes in einem Django-Modell?
- 29. Inkrementieren eines Feldes in einer Datenbank
- 30. Hibernate - Laden eines Objekts basierend auf dem Feld eines Mitgliedsobjekts
(* das hat mir denken: warum es so ist es nicht zu schwierig sein, einfach Referenzen Feld zu implementieren Nein, nein, ich shouldn‘. Denke darüber nach, ich habe Arbeit zu erledigen. *) –