He obtenido una serie de identificadores a través de MapReduce. He solucionaron esos identificadores de algunos criterios y ahora tengo que conseguir esos objetos en este orden en particular:Mongoid: encontrar a través de la matriz de identificadores
MyModel.find(ids)
derecho? Pero devuelve objetos que no están en el orden en que se almacenan los identificadores. Parece que esto es lo mismo que
MyModel.where(:_id.in => ids)
que no volverá objetos inverosímiles en apenas el mismo orden que los identificadores almacenados.
Ahora puedo hacer esto
ids.map{|id| MyModel.find(id)}
la que va a hacer el trabajo, pero va a eliminar la base de datos muchas veces.
¿Es más rápido que recuperar cada elemento de db? – fl00r
@ fl00r: Debería ser, solo un acceso MongoDB para buscar los modelos y un tipo simple (con Transformada Schwartzian incorporada) para obtener las cosas en el orden deseado. El acceso a la base de datos generalmente es la parte cara. Intente compararlo, es difícil garantizar cualquier cosa sin acceso a datos reales. –
@muistooshort, estoy enfrentando un problema similar. En general, ¿es cierto que sería una mejor práctica para minimizar los hits de DB? –