0
我需要根据2个属性检索一组答案。Mongoid查询语法问题
这就是我想要做的:
# 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}
我最终什么事做:
# 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}
的问题是,我不知道如何将2个查询合二为一。我一直在尝试各种组合,但似乎没有任何工作。当然我的黑客攻击方法效率很低。
Answer.or抛出一个错误(undefined method'或'for Answer:Class) –
这一个结束了工作,谢谢! feed_answers = Answer.any_of({:liker_ids.in => to_use},{:user_id.in => to_use}).desc(:created_at).skip(to_skip).limit(per_page) –
@ming yellow如果你想要或正在工作,您需要将'Answer.or'更改为'Answer.all.or'。我不确定为什么,但是还没有直接暴露给模型,如果你已经有了一个标准,那么效果很好。 – rubish