Sto utilizzando MongoDB in un progetto, in cui le relazioni tra le raccolte vengono create facendo riferimento a un ID documento univoco di un tipo ObjectID BSON speciale.
Quindi posso avere un documento School come questo:
{ name : 'Country School', _id : ObjectId("aaaaaaaaaaaaaa") }
Inoltre, posso avere un documento Oggetto come questo:
{ name: 'Maths', _id : ObjectId("yyyyyyyyyyyyy") }
E poi Documento insegnante nella raccolta Insegnanti:
{ name "Mr Brown", school: ObjectID("aaaaaaaaaaaaaa"), subject: ObjectId("yyyyyyyyyyyyy") }
I problemi iniziano quando ho bisogno di aggiornare il documento Insegnante in Visualizza:
- In che modo il controller deve restituire l'oggetto Insegnante alla vista?
Chiaramente, per facilitare un livello di astrazione dal DB, ho bisogno di convertire questo ObjectID in una stringa. Diventa un po 'un casino quando Teacher ha molte proprietà che sono essenzialmente ObjectID: ogni volta che vado avanti e indietro tra View e Controller, alla fine ho bisogno di un codice su misura per convertire ciascuna di queste proprietà in ObjectID e tornare alla stringa.
Quando vai da "Controller" - > "Visualizza" Posso facilmente controllare quali campi hanno tipo "ObjectId" e convertirli in stringa. Ma quando andrò "View" - > "Controller", è l'unica soluzione per l'hard-code su quali campi dovrebbero diventare ObjectId? Forse in qualche modo includere un riferimento al tipo di campo nel nome del campo, ad esempio se il nome del file è 'school_objectid' - convertirlo.
C'è una soluzione elegante a questo problema?