如何找到属性foo或bar等于查询值的对象?

我搜索谷歌并查看了文档,但我没有找到这样的例子。

我有嵌入式子项的这个对象:

{ teacher: "Balthazar", students: [ { name: 'Wilfred', sibling: 'Cordelia' }, { name: 'Mortimer', sibling: 'Arthur' }, { name: 'Cordelia', sibling: 'Wilfred' }, { name: 'Arthur' sibling: 'Mortimer' }, ] } 

我想找到Balthazar的学生,他们的namesibling['Wilfred', 'Cordelia', 'foo'] 。 我让它以这种方式工作:

 criteria_a = balthazar.students.in(name: ['Wilfred', 'Cordelia']) criteria_b = balthazar.students.in(sibling: ['Wilfred', 'Cordelia']) criteria_a << criteria_b 

但有没有更简洁的方法来链接标准? 我试过链接,但它不起作用。 它产生AND交集,而不是OR

 balthazar.students. .in(name: ['Wilfred', 'Corderial']) .in(sibling: ['Wilfred', 'Corderial']) 

所以,简单来说,这个查询的name is in array **AND** sibling is in array 。 但是我希望name is in array __OR__ sibling is in array

你可以使用any_of

 balthazar.students.any_of({name: ['Wilfred', 'Cordelia']}, {sibling: ['Wilfred', 'Cordelia']})