在猫鼬中使用 or 与 and 运算符

时间:2021-01-22 19:31:06

标签: node.js mongodb mongoose

我正在尝试使用 mongoose 嵌套对象中的多个项目进行过滤。模型是这样的:

{
    name: String
    ...
    links: [{url: String, canQuery: bool}]
}

我正在尝试创建一个过滤条件来执行 $or 和这样的 and 运算符:

name: req.params.name,
// and either
'links.url': {$ne:req.params.url},
// or
'links.url': req.params.url, 'links.canQuery': false

不确定正确的方法。我知道有一个 $or 运算符,但不知道如何将它与 ands 一起使用...

1 个答案:

答案 0 :(得分:0)

{
  name: req.params.name,
  $or: [ // and either    
    {'links.url': {$ne: req.params.url}},
    // or
    {$and: [
        'links.url': req.params.url, 
        'links.canQuery': false
      ]
    }
  ]
}