gpt4 book ai didi

syntax - 在 Mongoid 中使用 AND 和 OR 的组合

转载 作者:行者123 更新时间:2023-12-04 19:13:01 26 4
gpt4 key购买 nike

我想构造一个形式的查询:

select * from some_table
where
(field1 = 'x' or field2 = 'y')
and
(field3 = 'z' or field4 = 'w')

通过阅读文档,我认为它应该在 Mongoid 中看起来像这样:
SomeTable.or({:field1 => 'x'}, {:field2 => 'y'})
.and # or is it .intersect?
.or({:field3 => 'z'}, {:field4 => 'w'})

但这不起作用 - mongo 选择器只是所有字段的“$or”。这样做的正确方法是什么?谢谢。

我也很欣赏它的反面,例如 - 如何执行此查询:
select * from some_table
where
(field1 = 'x' and field2 = 'y')
or
(field3 = 'z' and field4 = 'w')

最佳答案

看来我需要使用 mongo 的组合和 Mongoid语法($something 运算符):

SomeTable.and( :$or => [ { :field1 => 'x' }, { :field2 => 'y' } ])
.and( :$or => [ { :field3 => 'z' }, { :field4 => 'w' } ])

相反的只是替换运算符:
SomeTable.or( :$and => [ { :field1 => 'x' }, { :field2 => 'y' } ])
.or( :$and => [ { :field3 => 'z' }, { :field4 => 'w' } ])

希望这对某人有所帮助:)

关于syntax - 在 Mongoid 中使用 AND 和 OR 的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com