2015-07-15 25 views
5

Mam problemy z zapisywaniem dokumentów w nowej kolekcji, a następnie usuwanie ich ze starej. utworzyć nowy obiekt tak:Przełączanie kolekcji i zapisywanie w 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() 

Wydaje się tylko, aby wykonać pierwszy Zapisz się do domyślnej kolekcji, a następnie wykonuje nic po tym. Grałem około z wieloma opcjami różnicowych, takich jak przeładunek obiekt po każdym przełączniku/zapisać i od menedżerów kontekstowych mongoengine:

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

Moje ustawienia Mongo wyglądać (zwany pierwszy):

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

Używanie mongoengine 0.10 i pymongo 2.8.1 z Pythonem 3.4.

Ktoś ma pomysł? Wielkie dzięki.

Odpowiedz

0

Czy otrzymujesz jakieś błędy? To zadziałało dla mnie. Sprawdź rekordy w swoich kolekcjach db mongo.

Jedną z możliwych przyczyn od mongoengine docs: „Upewnij się wszelkie pseudonimy zostały zarejestrowane register_connection() lub connect() przed użyciem menedżera kontekstowe”

+0

Nie, nie dostaję żadnych błędów, uważam, że jest to problem z mongoengine 0.10, ponieważ właśnie obniżyłem do wersji 0.09 i zapisują one poprawnie. Odpowiadanie na tę kolekcję to jednak inna historia ... –