La risposta breve è no, per quanto ne so, non esiste un ORM auto-generante per redis o MongoDB.
Ora, per una spiegazione più dettagliata:
Il motivo per cui esiste generazione CRUD per archivi di dati 'fissi' ORM e non con sede a dischi a forma libera è semplice: la natura stessa dei record a forma libera rende difficile per creare uno schema.
Diamo un'occhiata a redis per esempio, diciamo che ogni record era un hash, ad es. chiave 'user- {id}' con campi username, age e registered_on. Ora, cosa succede quando aggiungi un nuovo campo "posizione" agli utenti? Bene, ai redis non importa, basta aggiungere il campo a qualsiasi record mentre vengono modificati, non è necessario tornare indietro e aggiungere il campo a ogni hash. Abbastanza semplice
Ma ora avete la vostra magia CRUD, che cerca di capire quali campi mostrare. Supponiamo che tu decida di guardare il primo record per vedere quali campi esistono, ma cosa succederebbe se all'utente-1 mancasse quel nuovo campo "posizione"? Ora il CRUD non lo genererà.
Inoltre, poiché redis memorizza ogni valore come una stringa, un CRUD non saprebbe che 'age' ad esempio accetta solo un numero intero e registered_on è in realtà una stringa di data in formato ISO.
Oh, ma tu dici, MongoDB ha i tipi di dati! sicuramente, supponendo di ignorare i diversi campi per indennità di registrazione, facendo finta di avere lo stesso set di campi per record, è possibile fare qualche CRUD automagico lì? Ebbene sì, sarai in grado di fare un po 'meglio rispetto a Redis, perché ad es. un tipo di data e un tipo intero, ma ci sono alcune discrepanze anche allora. Supponi di avere un valore stringa. Come fai a sapere se quel valore di stringa richiede un input su più righe (area di testo) o su una riga (tipo di input = testo), oppure è disponibile solo da una selezione a discesa di alcune scelte?
Per questo motivo, l'unico modo per fare un CRUD teorico per molti tipi di forme libere sarebbe se si definisse in anticipo lo 'schema' (tramite una definizione del modulo forse?) Per ogni record e magari implementato un po ' una sorta di classe di interfaccia/contratto che consentiva a uno strumento CRUD di elencare i record per recuperare oggetti, recuperare un singolo record per chiave, aggiornare/creare un record e cancellare un singolo record per chiave.
Un tale strumento CRUD "accoppiato" teorico sarebbe davvero bello, e mi piacerebbe vedere qualcuno che lo faccia.
Non dovrebbe essere molto difficile creare un po 'di software che prende nei documenti, e in base al documento, genera una classe WTForm per ogni documento (che è che ogni documento può avere diversi set di dati su di loro anche se sono destinati a rappresentare oggetti simili - la flessibilità di no-sql e tutti ...). Quindi è possibile utilizzare una cianografia nel pallone per registrare una funzione di visualizzazione in grado di afferrare un oggetto, generare il modulo e visualizzare il modulo all'utente. Introspecting quale forma del widget e la convalida di cui avete bisogno sarebbe la parte difficile, come indica la risposta qui sotto. – tkone