J'essaie de faire quelque chose de droit comme: ceci renvoie une instance de Que Puis-je faire avec ce critère? Et si je veux juste que le tableau des documents soit renvoyé pour une évaluation ultérieure? P> P> mongoïde :: critère code> p>
3 Réponses :
Vous pouvez l'utiliser de cette manière p> Ceci retournera critères code> est quelque chose comme
relatissement code> objet dans
activeCord code>
[] code> s'il n'y a aucun utilisateur p>
S'il n'y a pas d'utilisateurs correspondant à ce critère, lorsque je exécute PETS User.Name, je récupère le critère code> lui-même. Y a-t-il de toute façon pour éviter cela?
S'il y a maintenant des utilisateurs met l'utilisateur.name code> ne sera jamais exécuté
users.all code> ne renvoie pas de tableau. Il renvoie un autre critère et n'est généralement pas nécessaire. Pour obtenir un tableau des critères, utilisez .Oa_a
En Mongoïde, les critères représentent la requête, pas les éléments. Vous pouvez penser à un critère sous forme de filtre, d'une portée, d'un objet de requête.
Une fois que vous avez un critère (portée), vous pouvez obtenir les éléments, exécuter une requête réelle à la base de données, avec une méthode supposée itérer sur les éléments ou renvoyer un élément, par exemple: Ceci est plus efficace et vous permet de composer une "requête" complexe à d'autres simples. P> Par exemple, Vous pouvez créer des scopes nommés dans votre classe: p> alors vous pouvez créer des objets de critères: p> jusqu'à Ce point, à tout moment, vous pouvez garder des critères de chaînage, pour affiner la requête même En outre: p> et enfin, obtenez le tableau avec les éléments suivants: p> donc, définissez certaines étendues nommées dans le Classe, puis utilisez-les pour créer un critère et faire le re Al requête quand vous en avez besoin (chargement paresseux). Les critères traitent tout cela pour vous, même si vous ne saviez pas que vous en aviez besoin. P> p> .First code>,
.Last code>,
.to_a code>,
. CODE>. >,
.map code>, etc. p>
Pour obtenir un tableau d'un mongoïde :: Critère: Utilisez la méthode .To_a p>
Donc,
Tout code> à ActiveRecord renvoie un tableau. Vous souhaitez appeler
exécuter code> pour obtenir le tableau.
utilisateur.Où (project_id: 2) .Execute code>