ruby - Ruby on Rails - Criteria - Mongoid - where 条件为 2 x 2 列
问题描述
我正在使用 RoR + MongoDB (Mongoid),我需要使用或条件按 2 列应用过滤器。
我看到了一些类似这样的建议,但没有奏效。
query = query.where(name: /#{attributes[:name]}/i).or(query.where(email: /#{attributes[:email]}/i))
如果我使用这个,看起来 or 将适用于所有条件:
query = query.where(name: /#{attributes[:name]}/i).or(email: /#{attributes[:email]}/i)
有人有什么建议吗?
解决方案
据我了解,正确的查询应该是:
query = query.or([{name: /#{attributes[:name]}/}, {email: /#{attributes[:email]}/i}])
这将返回具有值为 from 的name
属性的attributes[:name]
文档或具有email
值为from 的属性的文档attributes[:email]
这回答了你的问题了吗?
推荐阅读
- r - 试图获得 R 中两个时间点之间的时间差。我在数据集中有 NA,我找不到正确的方法
- javascript - 什么是 window["foo"]=function() {alert("foo");}
- .net - 数据库用户权限与 where 参数
- nextflow - 缺少 nextflow 进程预期的输出文件
- python - 需要澄清 str.join() 方法的工作原理
- azure-devops - 在 Azure DevOps 中自动更改用户的访问级别
- python - 如何打印歌曲索引及其名称?
- delphi - 如何将 ComboBox 的第一项设置为已选择?
- powerapps - powerapps 和 Sharepoint 列出了 500 多个项目
- android - 使用 fused 的 Android 位置更新返回 null。如何确保我从前台活动中获得它?