javascript - 如何执行使用 AND 和 OR 的条件 Mongoose 查询?

标签 javascript node.js mongodb mongoose database

<分区>

我想用 Mongoose 做一个复杂的和/或查询。这是一些伪代码,显示了我正在尝试做的事情:

Find persons where (
  (date_begin == null || date_begin <= today)
  && (date_end == null || date_end >= tomorrow)
)

这是我对真正的 Mongoose 代码的失败尝试:

  query = Person
    .find()
    .where('date_begin').equals(null).or.where('date_begin').lte(today)
    .where('date_end').equals(null).or.where('date_end').gte(tomorrow)

如有任何建议,我们将不胜感激! (仅供引用,今天和明天都设置好了,这是我要问的 Mongoose 语法。)

最佳答案

二胺化,

您可以使用 mongodb Logical Query Operators 执行以下操作直接这样:

  Person.find({
      $and: [
          { $or: [{date_begin: null}, {date_begin: {$lte : today}}] },
          { $or: [{date_end: null}, {date_end: {$gte : tommorow}}] }
      ]
  }, function (err, results) {
      ...
  }

关于javascript - 如何执行使用 AND 和 OR 的条件 Mongoose 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003927/

相关文章:

node.js - 如何配置 axios 使用 SSL 证书?

javascript - 无法找到/或实现正确的 mongoDb 方法来查找和更新子文档

javascript - 在reactjs中使用fetch api和map显示JSON数据

javascript - 将 javascript 数组加载到 Chartist.js 作为系列

javascript - Reactjs获取最新选择值的方法

javascript - 在对象上调用匿名函数

javascript - 如何设计一个具有私有(private)状态并且可以被实例化多次的JS对象?

javascript - 调试Windows应用商店应用-错误消息始终显示相同的行号

node.js - 使用 Mongoose 测试异步中间件功能

mongodb - 优化 Mongodb 文档版本控制