Domanda

ho incontrato diverse situazioni quando si utilizza MongoDB che richiedono l'uso di DBRefs. Tuttavia, mi piacerebbe anche memorizzare nella cache alcuni campi dal documento si fa riferimento nel DBRef sé.

{$ref:'user', $id:'10285102912A', username:'Soviut'}

Per esempio, io può decidere di avere il nome utente anche se il documento fa riferimento all'utente. Ciò fornirebbe me tutti i vantaggi di un approccio unico documento; Più veloce l'esecuzione di query ed eliminando la necessità di fare dereferenziazione manuale nel mio codice. Mentre allo stesso tempo che mi permette di usare i riferimenti dove fanno senso.

L'idea è che quando il documento di riferimento viene aggiornato (un utente cambia il loro nome, ad esempio) il mio livello di business in grado di aggiornare automaticamente tutti i documenti che vi fanno riferimento.

In definitiva, mi chiedo se è considerata forma buona per memorizzare campi aggiuntivi sulle mie DBRefs? Sarà rompere nulla? Perderò i miei dati ogni volta che viene riscritta un punto di riferimento? Saranno piloti come pymongo sostenerlo?

È stato utile?

Soluzione

  

In definitiva, mi chiedo se è buona forma considerato per memorizzare campi aggiuntivi sulle mie DBRefs?

Potrebbe essere più pulito di avere separato "cache" e campi "ref" ... dipende uno che cosa i vostri dati sono simili.

  

Perderò i miei dati ogni volta che viene riscritta un riferimento?

Si potrebbe, ma non se si sta attenti. Se si sta aggiornando il DB ref sotto-oggetto, basta assicurarsi che si sta aggiornando i campi specifici che si desidera aggiornato, non sovrascrivere l'intero sotto-oggetto.

Ricordate che i riferimenti in quanto sono solo oggetti normali. Il riferimento del database è uno standard, non un tipo speciale.

  

piloti piacerà pymongo lo supportano?

aiutanti dereferenziamento del driver dovrebbe funzionare ancora. Gli helper basta fare un findOne con il $ ref e $ campi id.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top