Ich habe eine riesige MongoDB-Datenbank von Mongoengine, wo die Objekte ein Datum haben. Um die Arbeit zu erleichtern, möchte ich alte Objekte archivieren, sie aber irgendwo aufbewahren.Archiv alte Daten in Mongoengine
Ich habe die Dokumentation gelesen und stieß auf switch_db
und switch_collection
. Ich kann jedoch keine Arbeit machen.
In beiden Fällen verweist die Dokumentation auf zwei Verwendungsszenarien.
Als
QuerySet
Betrieb:user = User.objects.get(id=user_id) user.switch_collection('old-users') user.save()
Das Problem dabei ist es nur für ein einzelnes Objekt funktioniert. Es ist nicht möglich, mehrere Dokumente stapelweise zu archivieren.
Als
context_manager
:with switch_collection(Group, 'group1') as Group: Group(name="hello testdb!").save() # Saves in group1 collection
diese Verwendung Ich kann nicht einmal die Abfrage machen, die folgende Störung erhalten:
ValidationError (Document:None) (Field is required...
Ich habe versucht, einen Weg suchen um Daten mit Mongoengine zu archivieren, aber keine der Optionen scheint zu funktionieren. Hast du einen Vorschlag?
versuchen setzen: '
Sie können Ihre aktuelle
users
Sammlungusers-old
mit diesem Befehl umbenennen von den Modellen importieren Doc' in Ihr Archivskript –Danke, nachdem ich diesen Fehler behoben habe, bekomme ich einen neuen, ich denke, ich muss mich mit einer neuen db verbinden, habe aber nichts in den Dokumenten gefunden. – liarspocker
Sie haben versucht zu testen, ob die Verbindungsleitung ('doc-archive') erfolgreich zu mongodb reicht? –