在 Mongoose 中使用 AND 组合两个 OR 查询

2024-04-13

我想在 Mongoose 中使用 AND 组合两个 OR 查询,就像这个 SQL 语句一样:

SELECT * FROM ... WHERE (a = 1 OR b = 1) AND (c=1 OR d=1)

我在 NodeJS 模块中尝试了此操作,该模块仅从主应用程序获取模型对象:

/********** Main application ***********/
var query = MyModel.find({});
myModule1.addCondition(query);
myModule2.addCondition(query);
query.exec(...)

/************ myModule1 ***************/
exports.addCondition = function(query) {
  query.or({a: 1}, {b: 1});
}

/************ myModule2 ***************/
exports.addCondition = function(query) {
  query.or({c: 1}, {d: 1});
}

但这是行不通的,所有 OR 条件都会像下面的 SQL 语句一样连接在一起:

SELECT * FROM ... WHERE a = 1 OR b = 1 OR c=1 OR d=1

我怎样才能结合这两个条件myModule1 and myModule2Mongoose 中的 AND 是什么?


直接创建查询对象可能是最简单的:

  Test.find({
      $and: [
          { $or: [{a: 1}, {b: 1}] },
          { $or: [{c: 1}, {d: 1}] }
      ]
  }, function (err, results) {
      ...
  }

但您也可以使用Query#and http://mongoosejs.com/docs/api.html#query_Query-and最近 3.x Mongoose 版本中提供的助手:

  Test.find()
      .and([
          { $or: [{a: 1}, {b: 1}] },
          { $or: [{c: 1}, {d: 1}] }
      ])
      .exec(function (err, results) {
          ...
      });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mongoose 中使用 AND 组合两个 OR 查询 的相关文章

随机推荐

  • 如何使用我的 xampp 服务器以便外部网络中的每个人都可以访问它

    我现在已经遇到这个问题一个多星期了 我正在我的计算机上运行我的世界服务器 因此我使用 no ip org 来获得 固定 IP 我转发了服务器的所有端口 我的朋友可以毫无问题地访问 后来我想我可以做一些统计数据之类的小事 所以我安装了xamp
  • TeamCity:向非注册用户发送电子邮件通知

    是否可以为未在 TeamCity 中注册的 VCS 用户设置 TeamCity 电子邮件通知 VCS 用户名是电子邮件的第一部分 vasily pupkin gt 电子邮件受保护 cdn cgi l email protection Jen
  • 如何在 Android Studio 中更新 Kotlin.Runtime

    Windows 10 Android Studio 3 0 1 刚刚启动它并收到 有新版本可用 更新吗 我更新了 现在我得到 过时的 Kotlin Runtime 多个库中的 Kotlin 运行时版本已过时 后跟长 URL 所以我需要更新
  • Angular2 - 是否可以使用选择器名称获取组件类名称

    是否可以使用 Angular 2 中的选择器名称获取组件类名称或组件引用 Component selector selector 1 template h1 Hello h1 export class Component1 Componen
  • 在 JSON 对象中嵌入文件附件

    是否可以将文件附件嵌入到 JSON 对象中 我有一个 HTML 表单 其中有几个文本字段输入和一个文件附件 我想将包含所有这些表单数据 包括文件附件 的 JSON 对象发送到服务器 Java 中有没有特定的库可以做到这一点 你能给出可能的解
  • p4和git之间有双向桥吗?

    是否有一个好的 可靠且自动化的 方法来为多个用户在 perforce 和 git 之间移动 git 更改 git p4 似乎可以很好地处理单用户情况 但我正在寻找多用户选项 目前 我们正在从多种不同的源代码控制系统转向单一的源代码控制系统
  • 在 iPhone 应用程序中使用 libxml2 解析 xml 文件的教程或示例代码

    我只想要一个演示在 Iphone 中使用 libXml2 解析 XML 文件的教程 我找到了关于 TouchXML 和其他的教程 但 Libxml2 的教程不一样 如果可以的话请帮忙 Apple 有一个示例 iPhone 项目 它使用 NS
  • Gradle 依赖版本“+”符号

    我试图了解 Gradle 如何处理带有 号的依赖版本 如示例 8 1 所示 http www gradle org docs current userguide artifact dependency tutorial html http
  • 协议实现的问题

    我想要实现的是UITextField将单词视为字符 具体来说 我试图将数学表达式 sin 作为一个字符 我想通过实现我自己的 UITextInputDelegate 来解决这个问题 但是 当我实现或采用此协议时 该协议中的四个必需函数永远不
  • 如何为 QTimeEdit 提供自动更改?

    我的对话框上有一个 QTimeEdit 小部件 我想提供某种自动更改 如果光标位于分钟部分并且时间为 04 59 则下次单击向上箭头会将时间更改为 5 00 怎么做 我看到有人提到 AutoAdvance 属性 但我认为它已经过时了 因为我
  • Clojure:将哈希映射键字符串转换为关键字?

    我使用 Aleph 从 Redis 提取数据 apply hash map r hgetall key medication id 问题是这些数据返回时带有键字符串 例如 name Tylenol how instructions 当我需要
  • MySQL ORDER BY 带 % 的字段

    我正在尝试使用通配符进行 ORDER BY FIELD 工作 但没有成功 SELECT positions departments dept name departments dept url divisions dept name AS
  • 营销人员的网络表单动态地形成字段条件可见性

    我们使用 WFFM 来创建登陆页面 我们的营销人员很容易使用它 现在 我们正在考虑定制它们 例如 我们有以下需求 在我们的表单上 我们显示居住国家 地区 但是当您选择某些国家 地区时 我们希望再显示一个名为的下拉菜单state provin
  • ADT eclipse xml 布局文本编辑器 - 在文件关闭并重新打开之前经常损坏[重复]

    这个问题在这里已经有答案了 可能的重复 移动和消失的代码行 Eclipse 的 XML 编辑器出现问题 https stackoverflow com questions 10030727 moving and vanishing line
  • 使用 big.matrix 对象计算欧几里德距离矩阵

    我有一个类对象big matrix in R有尺寸778844 x 2 这些值都是整数 公里 我的目标是使用以下公式计算欧几里德距离矩阵big matrix并因此得到一个类的对象big matrix 我想知道是否有最佳方法可以做到这一点 我
  • Scrum 燃尽模式 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我所在的团队由 10 人组成 负责处理大型遗留代码库 但产品负责人不太理想 我们的积压工作状况非常糟糕 大型史诗经常破坏我们的冲刺 该团队
  • 如何在 Android 上以编程方式设置进度条的样式

    我在 style xml 中有 ProgressBar 样式 当我创建布局时 放置 ProgressBar 并设置样式 例如 style style ProgressBarStyle 将布局设置为对话框 一切都很好 其他方式以编程方式创建对
  • 安装 PCRE 时出错

    我正在尝试在我的 Ubuntu 11 10 服务器上安装 PCRE 当我运行 make 命令时 我得到一个非常长的输出 它总是以这个错误结束 libtool link cd libs rm f libpcreposix la ln s li
  • Join 中的用例声明

    大家好 我想使用此查询在连接中使用 case 语句 但出现错误 Select CONVERT VARCHAR 10 SII SIDATE 103 DATE SII SALEID SII ItemName SI TenancyID FROM
  • 在 Mongoose 中使用 AND 组合两个 OR 查询

    我想在 Mongoose 中使用 AND 组合两个 OR 查询 就像这个 SQL 语句一样 SELECT FROM WHERE a 1 OR b 1 AND c 1 OR d 1 我在 NodeJS 模块中尝试了此操作 该模块仅从主应用程序