Nesnelerin bir tarih olduğu, mongoengine tarafından desteklenen büyük bir MongoDB veritabanına sahibim. İşi kolaylaştırmak için eski nesneleri arşivlemek, ancak bunları bir yerde tutmak istiyorum.Eski verileri arşivle mongoengine
Belgeyi okudum ve switch_db
ve switch_collection
numaralı telefondan geldim. Ancak, ya iş yapamıyorum.
Her iki durumda da, belgeler iki kullanım senaryosuna başvurur. Bir QuerySet
operasyonu olarak
:
user = User.objects.get(id=user_id) user.switch_collection('old-users') user.save()
bu sorun yalnızca tek bir nesne için çalışır olduğunu. Birden çok belgeyi toplu olarak arşivlemek mümkün değildir.
context_manager
bir gibi:ValidationError (Document:None) (Field is required...
denedim yolu arıyor:
with switch_collection(Group, 'group1') as Group:
Group(name="hello testdb!").save() # Saves in group1 collection
bu kullanma Hatta şu hatayı alıyorum, sorgu yapamaz Mongoengine ile veri arşivlemek için, ancak seçeneklerin hiçbiri işe yaramıyor. Bir öneriniz var mı?
koymak deneyin yeni
users
koleksiyonuna üzerinde yeni değerler kopyalamak için basit komut dosyasını çalıştırın:Bu komutu kullanarak
users-old
için geçerliusers
koleksiyonunu adlandırabilirsiniz ' modellerden doc dosyasını arşiv komut dosyanıza aktarın –Teşekkürler, bu hatayı düzelttikten sonra yeni bir tane aldım, sanırım yeni bir db'ye bağlanmalıyım ama bu konuda dokümanlar hakkında hiçbir şey bulamadım. – liarspocker
Hat bağlantısı ('doc-archive') mongodb'a başarılı bir şekilde ulaşıp ulaşmadığını test etmeye çalıştınız mı? –