Ruby on rails Mongoid Rails-比较两个数组,看看是否有匹配的元素

Ruby on rails Mongoid Rails-比较两个数组,看看是否有匹配的元素,ruby-on-rails,arrays,mongodb,mongoid,Ruby On Rails,Arrays,Mongodb,Mongoid,基本上,我需要比较两个数组,以了解用户是否使用过滤器中选择的语言: User 1 = ['english','portuguese'] User 2 = ['chinese','portuguese'] User 3 = ['portuguese','german'] Filter1 = ['portuguese'] Filter2 = ['portuguese','english'] Filter3 = ['english', 'chinese'] 过滤器1应与所有3个匹配。 过滤器2应与

基本上,我需要比较两个数组,以了解用户是否使用过滤器中选择的语言:

User 1 = ['english','portuguese']
User 2 = ['chinese','portuguese']
User 3 = ['portuguese','german']

Filter1 = ['portuguese']
Filter2 = ['portuguese','english']
Filter3 = ['english', 'chinese']
过滤器1应与所有3个匹配。 过滤器2应与所有3匹配。 过滤器3应与1和2匹配

这是我现在的问题:

@sss = @listings.where("account.profile.spoken_languages" => {"$in" => @languages_array})
但不知怎么的,这不起作用


有什么帮助吗?

查询看起来没问题,并确认了它,因此我怀疑
@languages\u array
(请删除
\u array
,没有人会像ruby中那样命名变量)是空的,或者您得到的
account.profile.speaked\u languages
错误。没有足够的代码可以确定。可能会尝试这样重写:@listings.where(:“account.profile.speaked\u languages.”在=>@languages\u数组中)查询看起来很好,并确认了它,所以我怀疑
@languages\u数组
(请删除
\u数组
,没有人会在ruby中这样命名变量)是空的,或者您的帐户.profile.speaked\u languages错误。没有足够的代码可以确定。可能会尝试这样重写:@listings.where(:“account.profile.speaked\u languages.in=>@languages\u array)