2015-07-15 6 views
5

Ich habe Probleme, Dokumente in einer neuen Sammlung zu speichern und sie dann aus der alten Sammlung zu löschen. Ich erstelle ein neues Objekt wie folgt:Wechseln von Sammlungen und Speichern in Flask-Mongoengine

class Test(mongo.Document): 
    field = mongo.StringField() 

t = Test(field="test") 
t.switch_collection('default') 
t.save() 
t.switch_collection('switched') 
t.save() 
t.switch_collection('default') 
t.delete() 

Es scheint nur die erste speichern auf die Standardsammlung durchzuführen und führt dann nichts danach. Ich habe mit ein paar Unterschied Optionen wie erneutes Laden des Objekts nach jedem Schalter rumgespielt/speichern und von mongoengine Kontext-Manager:

with switch_collection(Test, 'mongoswitch') as test: 
    test(field="switch").save() 

Meine Mongo Einstellungen aussehen (genannt zuerst):

app.config["MONGODB_SETTINGS"] = {'db': 'TestDB'} 
mongo = MongoEngine(app) 

Mit Mongoengine 0.10 und Pymongo 2.8.1 mit Python 3.4.

Wer hat eine Idee? Viel Dank.

Antwort

0

Erhalten Sie irgendwelche Fehler? Es hatte für mich funktioniert. Überprüfen Sie die Datensätze in Ihren mongo db-Sammlungen.

Ein möglicher Grund von mongoengine docs: „Stellen Sie sicher, dass alle Aliase mit register_connection registriert wurden() oder() an, bevor Sie den Kontext-Manager“

+0

Nein, ich bekomme keine Fehler, ich glaube, es ist ein Problem mit Mongoengine 0.10, da ich gerade auf 0.09 heruntergestuft habe und sie richtig speichern. Das Abfragen dieser Sammlung ist jedoch eine andere Geschichte. –

Verwandte Themen