如何找到属性foo或bar等于查询值的对象?
我搜索谷歌并查看了文档,但我没有找到这样的例子。
我有嵌入式子项的这个对象:
{ teacher: "Balthazar", students: [ { name: 'Wilfred', sibling: 'Cordelia' }, { name: 'Mortimer', sibling: 'Arthur' }, { name: 'Cordelia', sibling: 'Wilfred' }, { name: 'Arthur' sibling: 'Mortimer' }, ] }
我想找到Balthazar
的学生,他们的name
或sibling
在['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']})