MongoDB如何实现字段不包含指定多字符串的查询
MongoDB 筛选非展会来源商机的正确查询写法
要实现leadsource字段任意位置不包含"show"或"event"(不区分大小写)的记录筛选,直接使用多关键词正则搭配$not取反即可,MongoDB正则默认匹配字符串任意位置,不需要额外添加前后通配符。
基础查询语句
db.你的集合名.find({ leadsource: { $not: /show|event/i } })
写法说明
- 正则中
|代表或逻辑,会同时匹配"show"、"event"两个关键词,覆盖所有需要排除的展会类来源值 - 未添加
^(字符串开头锚定)、$(字符串结尾锚定)时,正则默认扫描全字符串,无论关键词出现在字段值的开头、中间、末尾都能准确命中,比如Miami Show - 2022、Orlando 2021 Event这类前后带其他文本的值都会被正确排除 - 正则后缀
i代表不区分大小写匹配,大写、小写、大小写混写的关键词(比如Show、EVENT、ShowEvent)都会被识别
可选:排除空值场景
如果不需要返回leadsource字段不存在、值为null的记录,可以补充字段校验逻辑:
db.你的集合名.find({ leadsource: { $exists: true, $ne: null, $not: /show|event/i } })
内容的提问来源于stack exchange,提问作者jessifresh
相关产品推荐
相关产品推荐

