You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB如何查询特定字段不包含指定文本的所有文档?

解决Mongoose查询name不含指定字符的问题

你写的查询语法有误,$not的使用方式不对。要查询name字段不包含字符'm'的文档,有两种正确写法:

方法一:使用否定正则表达式

直接在$regex中定义匹配不包含'm'的规则,还可添加$options: 'i'实现大小写不敏感匹配(不需要的话可以省略):

Collection.find({ name: { $regex: /^[^m]*$/, $options: 'i' } })

说明:^[^m]*$表示从字符串开头到结尾的所有字符都不是'm',加上$options: 'i'后,会同时排除包含'M'的文档。

方法二:用$not包裹$regex

将$regex嵌套在$not内部,直接排除所有匹配指定正则的文档:

Collection.find({ name: { $not: { $regex: 'm', $options: 'i' } } })

这种写法逻辑更直观,直接表示筛选出所有name里不包含'm'(或'M')的文档。

以上两种写法都会返回你文档数组中的john、joy、tom、eli,自动排除martin。

内容的提问来源于stack exchange,提问作者Pouria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:31:58