Ho recuperato un numero di ID tramite MapReduce. Ho risolto tali ID da parte di alcuni criteri e ora ho bisogno di quegli oggetti in questo ordine particolare:Mongolo: trova attraverso la matrice di ID
MyModel.find(ids)
Destra? Ma restituisce oggetti che non sono memorizzati negli ID ordine. Sembra che questo è lo stesso che
MyModel.where(:_id.in => ids)
che non tornerà oggetti recuperati nel proprio stesso ordine in cui gli ID memorizzati.
Ora posso fare questo
ids.map{|id| MyModel.find(id)}
, che farà il lavoro, ma sarà battere il database molte volte.
è più veloce quindi recuperare ogni elemento da db? – fl00r
@ fl00r: Dovrebbe essere, solo un accesso MongoDB per recuperare i modelli e un ordinamento semplice (con Trasformata Schwartzian incorporata) per ottenere le cose nell'ordine desiderato. L'accesso al database è generalmente la parte costosa. Prova a confrontarlo, è difficile garantire qualsiasi cosa senza accesso ai dati reali. –
@muistooshort, sto affrontando un problema simile. In generale, è vero che sarebbe solo una pratica migliore per minimizzare i colpi db? –