MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

rails mongoid critères trouver par association

Vous devez garder à l'esprit qu'il n'y a pas de jointures dans mongodb. Dans les bases de données relationnelles, includes forme une requête de jointure et vous pouvez utiliser des colonnes des deux tables dans la requête. Cependant, en raison de l'absence de jointures dans mongodb, cela n'est pas possible.

En mongoid, includes enregistre juste un tas d'appels db. Il récupère et stocke les enregistrements associés dans la carte d'identité pour une récupération rapide, mais lors de l'interrogation, une requête ne peut traiter qu'une seule collection.

Si vous avez besoin d'articles basés sur des noms d'utilisateurs, je vous suggère de contourner le problème :

user_ids = User.where(username: 'erebus').only(:_id).map(&:_id)
articles = Article.where(:user_id.in => user_ids)