2015-07-15 32 views
5

Ho problemi a salvare i documenti in una nuova raccolta e quindi a eliminarli da quello precedente. crea un nuovo oggetto in questo modo:Cambio collezioni e salvataggio 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() 

Sembra solo fine di eseguire il primo salvataggio alla raccolta predefinita e quindi esegue nulla dopo. Ho giocato un po 'con una serie di opzioni di differenza, come ricaricare l'oggetto dopo ogni switch/salvare e dal contesto manager mongoengine:

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

mie impostazioni mongo assomigliano (chiamato prima):

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

Usando mongoengine 0.10 e pymongo 2.8.1 con Python 3.4.

Qualcuno ha un'idea? Grazie mille.

risposta

0

Hai riscontrato errori? Aveva funzionato per me. Controlla i record nelle tue raccolte db mongo.

Una possibile ragione da mongoengine docs: "Assicurarsi che gli eventuali alias sono stati registrati con register_connection() o collegare() prima di utilizzare il gestore di contesto"

+0

No Non ricevo errori, credo che sia un problema con mongoengine 0.10, poiché ho appena effettuato il downgrade a 0.09 e loro salvano correttamente. Interrogare quella raccolta è una storia diversa però .. –