2010-10-17 16 views

Respuesta

43

Puede consultar documentos incrustados, simplemente califique el nombre. Ahora, esto devolverá todos los autores que tengan libros que coincidan con su consulta.

Si Autor se define como tener muchos: los libros (y el libro es un documento incrustado ::)

@authors_with_sewid = Author.where("books.name" => "sewid").all 

Se podría entonces necesita para iterar sobre los autores y extraer los libros.

+0

Ok, muchas gracias. ¿Qué sucede si tengo una combinación de documentos incrustados y referenciados, también puedo consultar los documentos a los que se hace referencia? Por ejemplo, el modelo de autor tiene un campo de creador, que contiene la ID de un usuario. ¿Es posible hacer 'Author.where ("book.name" = "sewid"). Y ("creator.username" => "example")'? Un primer intento falló. – sewid

+0

Una vez que se hace referencia a los objetos, necesitaría una unión. Y no hay uniones en la tierra mongodb. –

+2

Lo mejor que puede hacer en ese caso es desnormalizar sus datos y almacenar el nombre de usuario del creador con el autor. – Nader

Cuestiones relacionadas