MongoDB 找到 $and 任何值
Posted
技术标签:
【中文标题】MongoDB 找到 $and 任何值【英文标题】:MongoDB find $and with value of any 【发布时间】:2021-11-02 11:24:07 【问题描述】:如何将 find 与 $and 一起使用,并获得一些价值?
例子
let city, zanr, date = req.body;
const selectedEvent = await Events.find(
$and: [ address: city, type: zanr , date: datum ],
);
因为在 req.body 中可以是值“all”,这意味着我有时不需要过滤。
有时可以是地址:任意
【问题讨论】:
【参考方案1】:您可以使用基于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);
如果您拥有的不仅仅是城市,您可以为更多可选过滤器执行此操作。
【讨论】:
【参考方案2】:如果城市全部从and
数组中删除address:city
或使用address:$regex:'.*.'
let city, zanr, date = req.body;
const selectedEvent = await Events.find(
$and: [ address:$regex:'.*.', type: zanr , date: datum ],
);
【讨论】:
谢谢,但我在前端有三个过滤器 City [All, Berlin, New York] 如果有人会选择 zanr [Concerts, Meeting] 如果有人会选择 [Concerts] 和 city [All] 什么我应该这样做吗? 我更新我的答案address:$regex:'.*.'
表示所有地址
感谢分配!这帮助我使它更灵活:-))以上是关于MongoDB 找到 $and 任何值的主要内容,如果未能解决你的问题,请参考以下文章
mongod user and role management