MongoDB 找到任何值的 $and

MongoDB find $and with value of any

我如何使用 find with $and with some value all?

例子

let { city, zanr, date } = req.body;

const selectedEvent = await Events.find({
  $and: [{ address: city}, { type: zanr }, { date: datum }],
});

因为在 req.body 中可以是值“全部”,这意味着我有时不需要过滤器。

有时可以是地址:任意

如果城市全部从 and 数组中删除 {address:city} 或者使用 {address:{$regex:'.*.'}}

 let { city, zanr, date } = req.body;

    const selectedEvent = await Events.find({
      $and: [ {address:{$regex:'.*.'}},{ type: zanr }, { date: datum }],
    });

您可以根据 req.body.
使用 javascript 动态生成查询 MQL 查询是 JSON 我们可以生成它们,更改它们等

例如

var q;

if(city=="all") q=[{ type: zanr }, { date: datum }];
else q=[{ address: city}, { type: zanr }, { date: datum }];

const selectedEvent= await Events.find({$and: q});

如果您有多个城市,您可以执行此操作以获得更多可选过滤器。