在 Mongoid 中使用 AND 和 OR 的组合

2024-02-16

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

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 and 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' } ]) 

希望这对某人有帮助:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mongoid 中使用 AND 和 OR 的组合 的相关文章

  • 将字符定义为单词边界

    我已经定义了 字符在乳胶模式下充当单词组成部分 我对结果非常满意 唯一困扰我的是像这样的序列 alpha beta被视为单个单词 当然 这是预期的行为 有没有办法让 emacs 将特定字符解释为单词 starter 这样 它将始终被视为其后
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • Mongoid 命名范围比较同一文档中的两个时间字段

    我需要在 Mongoid 中创建一个命名范围来比较同一文档中的两个时间字段 例如 scope foo where gt updated at gt gt checked at 这显然不会像它对待的那样起作用 checked at作为一个符号
  • 在 SPSS 中生成语法的语法

    我正在尝试构建一个语法来在 SPSS 中生成语法 但我遇到了一些问题 我有一个包含元数据的 Excel 文件 我想使用它来创建一个语法来从中提取信息 就像这样 如果我有一个巨大的数据库 我只需要保持 Excel 更新 添加 删除变量 等等
  • 在 mongoid 中通过 '<<' 分配嵌入式项目时触发 after_save 吗?

    我想知道是否有一种方法可以在 Mongoid 映射器中的嵌入对象上触发 after save 回调 Example i Image new file gt file user images lt lt i gt i after save s
  • MongoDB:计算数组中的项目数

    我有一个集合 其中集合中的每个文档都有一个名为的数组foo包含一组嵌入文档 目前 MongoDB shell 中是否有一种简单的方法来计算其中有多少个实例foo 就像是 db mycollection foos count or db my
  • 为什么允许在 for 循环中使用列表订阅? [复制]

    这个问题在这里已经有答案了 Python 如何接受以下构造 l 1 2 3 4 for i l i in enumerate l print l i 似乎没有任何抱怨 愉快地打印出来1 2 3 4 这是如何被允许的以及它到底有什么作用 Th
  • Haskell 点运算符

    我尝试在 Haskell 中开发一个简单的平均函数 这似乎有效 lst 1 3 x fromIntegral sum lst y fromIntegral length lst z x y 但是为什么下面的版本不行呢 lst 1 3 x f
  • javascript 函数后面括号中的值

    我正在尝试重新利用我在 SO 的答案中找到的一些 Javascript 代码 但我想首先更好地理解它的语法 其大纲是 function root ns factory some code window detectZoom function
  • C 函数声明中的无类型参数

    最近我一直在查看 Steven Skiena 的在线资源中的一些 C 示例代码 算法设计手册 http www cs sunysb edu skiena algorist book programs 并且对他的一些函数调用的语法感到困惑 诚
  • 是否有在相似结构之间移动字段的语法?

    我有一个大结构Foo
  • 带数组的双美元变量

    我正在尝试使用双美元语法访问数组的第一项 但它无法按照我想要的方式工作
  • Verilog 中如何使用函数?

    在我的 FPGA Verilog 课程中 我的教授只是回顾了函数 他说在函数中 你可以按程序编写代码 然后 当您想要调用该函数时 您可以在always块中调用它 即 程序性地 也可以使用分配语句来调用它 对我来说 如何使用过程代码编写函数
  • 用于定义数字的数字常量之前应有非限定 ID

    我是 C 新手 所以我不知道 phidget 代码示例中的此错误意味着什么 Main cpp 8 16 错误 数字常量之前预期有不合格的 id verander de volgende informatie naar de informat
  • Objective-C 语法是什么,椭圆式点表示法? “……”

    我在 Joe Hewitt 的 Three20 源代码中注意到了这一点 而且我以前从未在 Objective C 中见过这种特殊的语法 甚至不知道如何在适当的谷歌搜索中引用它 来自 UITableViewDataSource TTSecti
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • Mongoid 关系多态关联

    有谁知道如何进行多态关联Mongoid这是关系性的支持 而不是嵌入性的支持 例如这是我的Assignment model class Assignment include Mongoid Document include Mongoid T
  • MongoDB 查询数组以获取精确的元素匹配,但可能是无序的

    我在 MongoDB 中有一个文档 如下所示 users 2 3 4 我尝试通过匹配用户数组来查询该文档 db things find users all 2 3 4 该查询有效 但也会返回此文档 users 2 3 4 5 最后一个要求是
  • 与 Perl 和 Ruby 比较的相似语言特性 __END__

    背景 Perl 和 Ruby 有 END and DATA 允许将任意数据直接嵌入源代码文件中的标记 尽管这种做法可能不适合通用编程用途 但它对于例行任务的 一次性 快速脚本非常有用 问题 还有哪些其他编程语言支持相同或类似的功能 它们是如
  • 创建表时 MySQL 语法错误

    我正在尝试在 Filemaker gt MySQL 转换脚本中使用此查询 表创建步骤直接从 phpMyAdmin 导出中获取 并添加到 DROP 语句中 DROP TABLE IF EXISTS artifacts CREATE TABLE

随机推荐

  • 平板电脑 UI 不适用于我的应用

    我正在尝试创建一个应用程序 它具有适用于平板电脑和手机的两种不同的 UI 并且我正在使用片段来实现此目的 我为每个平板电脑和手机布局创建了两个单独的 xml 文件 两者都称为 Activity main xml 手机布局放置在 res la
  • JavaFx MediaPlayer“无法创建播放器!” Ubuntu 14.04 中的错误

    我已经安装了 Ubuntu 14 04 当我实例化 MediaPlayer 时出现错误 package mediatest import java io File import javafx application Application
  • Java中两个集合的对称差[重复]

    这个问题在这里已经有答案了 那里有两个TreeSet在我的应用程序中 set1 501 502 503 504 set2 502 503 504 505 我想要得到对称差异 https en wikipedia org wiki Symme
  • 递归中的全局变量。 Python

    好的 我正在使用 Python 2 7 3 这是我的代码 def lenRecur s count 0 def isChar c c c lower ans for s in c if s in abcdefghijklmnopqrstuv
  • 将基于 Vaadin 11 的 Maven 驱动项目更改为 Vaadin 12 alpha 版本?

    Problem 我有一个工作项目IntelliJ https en wikipedia org wiki IntelliJ IDEA2018 3 为Vaadin https en wikipedia org wiki Vaadin11 使用
  • 构造函数使用可选参数做奇怪的事情[重复]

    这个问题在这里已经有答案了 可能的重复 python 中最不令人惊讶的地方 可变的默认参数 https stackoverflow com questions 1132941 least astonishment in python the
  • 如何从 numpy 数组创建打乱的批处理列表以提供张量流字典

    我正在使用 Tensorflow 开发分类器 我的输入和输出是 numpy 数组 其中示例作为行 参数作为列 到目前为止 我的代码工作正常 我可以通过直接输入 100 的输入和输出数组来训练我的网络 现在 我想创建一个打乱批次的列表来提供张
  • RestKit JSON 空值崩溃

    我有这个问题 我正在 Swift 中开发应用程序 并使用 RestKit 检索数据并将数据发布回 API 然而我遇到了障碍 如果检索到的 JSON 负载包含一些空值 应用程序将崩溃并显示消息 由于未捕获的异常 NSInvalidArgume
  • 角度组件注入问题

    我目前在使用角度组件注入原理时遇到问题 我有一个标头组件 必须在另一个我称为 WelcomePage 组件 的组件中使用 我的目标是标头组件可以使用其父组件的方法和属性 为此 我创建了以下抽象类 export abstract class
  • DOMException:信号在异步调用的 useEffect 中无故中止

    我有一个在严格模式下使用 React 和 GraphQL 的项目 我更新了一些包 现在在包含异步调用的 useEffect 中收到以下错误 useEffect gt const loadTags async gt const data aw
  • Zeromq.node安装错误Ubuntu 12.04:'node-gyp重建'

    我正在尝试安装ZeroMQ节点 https github com JustinTulloss zeromq node using npm install zmq 但是 我不断收到以下错误 任何帮助将非常感激 gyp ERR build er
  • origin/master 和 master 有什么区别?

    有什么区别 基本上我想用 master 来 rebase 我的分支
  • Python smtplib sendmail() 不适用于主题/正文

    每当我尝试使用sendmail sender reciever message 它成功发送了电子邮件 并且主题行很好 但电子邮件的 正文 总是丢失 这是我的完整代码 s smtplib SMTP smtp gmail com 587 s e
  • Java 应用程序有办法检测屏幕是否锁定吗?

    我正在寻找一种方法来了解 Java 应用程序 withoutJNI 它是一个多平台应用程序 可以检测屏幕是否被锁定 仅供参考 我们的应用程序在用户工作时记录时间 我们希望它在屏幕锁定时自动停止记录 而不是用户必须明确地这样做 我认为没有一个
  • 如何使用ACR122U-A9进行卡模拟

    我有一个 ACR122U A9 我想用它进行卡模拟 请问谁做过这一点 你能给我一些建议吗 现在我还有其他问题 当我将白色智能卡放在这个 NFC 读卡器上时 LED 仅闪烁一次 但是当我把手机放在上面时 LED 总是闪烁 直到手机拔出 ACR
  • 使用 Sentiwordnet 3.0

    我计划使用 Sentiwordnet 3 0 进行情感分类 有人可以澄清一下 Sentiwordnet 中与单词相关的数字代表什么吗 例如排名 5 中的 5 是什么意思 另外对于 POS 来说 用来表示副词的字母是什么 我假设 a 是形容词
  • 数组 - foreach 带来 ->致命错误:无法使用类型的对象

    所以 我对这个数组很生气 第二天让我感到痛苦 我正在开发一个 OOP PHP 脚本 我得到一个数组 Array 0 gt Project Object project id gt 1 title gt Some Name date gt 2
  • 具有动态字段的 Angular Reactive Form

    我目前正在与 Angular 形式数组作斗争 我有一个动态添加字段的表单 我已经创建了表单对象 this otherDataForm this fb group 我添加了这样的动态字段 addField field CustomFormFi
  • 在C#中通过串口发送ctrl+C?

    How can I send my device ctrl c through serial port in C 串行端口不传输密钥 它们传输字节 通常是 字符的 ASCII 表示形式 Keys ControlKey Keys C 与感知
  • 在 Mongoid 中使用 AND 和 OR 的组合

    我想构造一个以下形式的查询 select from some table where field1 x or field2 y and field3 z or field4 w 通过阅读文档 我认为它应该看起来像这样Mongoid Some