J'ai besoin de récupérer un ensemble de réponses selon 2 attributs.Mongoid Query Syntaxe Question
C'est ce que je veux faire:
# where liker_ids is an array and user_id is a bson in the answer document
feed_answers=Answer.any_in(:liker_ids=>to_use,:user_id.in=>to_use).desc()map{|a|a}
Ce que je fini par faire:
# to use
to_use=[some array of ids]
friend_answers=Answer.any_in(:liker_ids=>to_use).map{|a|a}
liked_answers=Answer.where(:user_id.in=>to_use).map{|a|a}
feed_answers=(friend_answers+ liked_answers).sort{|x,y| y.created_at<=>x.created_at}
Le problème est que je ne sais pas comment combiner les 2 requêtes en une seule. J'ai essayé différentes combinaisons, mais rien ne semble fonctionner. et ma méthode de piratage est très inefficace bien sûr.
Answer.or jette une erreur (méthode non définie 'ou 'pour la réponse: Class) –
celui-ci a fini par fonctionner, merci! feed_answers = Answer.any_of ({: liker_ids.in => à_user}, {: user_id.in => à_use}). Desc (: created_at) .skip (à_skip) .limit (per_page) –
@ming yellow Si vous Si vous voulez le ou pour travailler, vous devrez changer 'Answer.or' en' Answer.all.or'. Je ne sais pas pourquoi, mais ou n'a pas été exposé directement pour le modèle, fonctionne bien si vous avez déjà un critère si. – rubish