有没有办法在 MongoDB 中创建一个具有多个值的过滤器?

Posted

技术标签:

【中文标题】有没有办法在 MongoDB 中创建一个具有多个值的过滤器?【英文标题】:Is there some way to create a filter with more than one value in MongoDB? 【发布时间】:2021-10-23 06:15:27 【问题描述】:

我对 MongoDB 还很陌生,我正在尝试创建一个组合多个属性的过滤器。

例如,假设我想根据模型Objectab两个属性的乘积是否大于threshold来过滤搜索结果。

我会做这样的事情吗?

Object.find(
   a * b : $gt: threshold
);

我已经尝试过了,但是我遇到了各种各样的错误。

【问题讨论】:

【参考方案1】:

您可以使用表达式运算符$expr 为内部字段设置条件,

乘以$multiply 运算符 $gt 运算符与 threshold 字段匹配
Object.find(
  $expr: 
    $gt: [
       $multiply: ["$a", "$b"] ,
      "$threshold"
    ]
  
)

Playground

【讨论】:

以上是关于有没有办法在 MongoDB 中创建一个具有多个值的过滤器?的主要内容,如果未能解决你的问题,请参考以下文章