Próbuję znaleźć elegancki sposób aktualizacji istniejącego dokumentu MongoDB o dane otrzymane ze strony internetowej jako json. Problem polega na tym, że nie wiem z góry, które pola mają zostać zaktualizowane - nie mogę więc użyć zestawu set__field, Mam tylko jsonową reprezentację pól do zaktualizowania w moim dokumencie MongoDB. Dodatkowo używam DynamicDocuments, więc mogą istnieć nowe pola do ustawienia w dokumencie. npJak zaktualizować z json a Mongoengine DynamicDocument
class Study(DynamicDocument):
study_accession_nr = StringField()
study_name = StringField()
study_type = StringField()
i json może wyglądać - na przykład:
{"_id" : "123", "study_name" : "Statistics"}
lub
{"_id" : "123", "study_type" : "research", "study_name" : "Statistical analysis"}
mogę to zrobić łatwo z konsoli lub za pomocą pymongo, ale nie wiem, jak to zrobić, używając Mongoengine, chyba że ręcznie ustawię setattr (myDocInstance, nameOfField, val), co nie wygląda tak elegancko. Dzięki!
Jeśli potrzebujesz czystego DB, dlaczego wybierasz ORM ze ścisłymi regułami? Powinieneś spróbować pymongo. – Denis
Ponieważ chcę mieć hierarchię dokumentów i dokumentów osadzonych oraz zdefiniować zestaw wymaganych pól, a ja jestem dość elastyczny w polach opcjonalnych. – Clara
"hierarchia dokumentów i dokumentów wbudowanych" to zadanie programisty, a nie ORM "i zdefiniowanie zestawu wymaganych pól", jeśli mówimy o aplikacji internetowej, można po prostu sprawdzić formularze od użytkowników. – Denis