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

如何在MongoDB中执行排除指定字段内容的.find查询?

MongoDB 查询字段不包含特定词汇的方法

下面分几种常见场景给出具体实现:

1. 精确排除某个值

如果要筛选出字段值完全不等于特定词汇的文档,用$ne操作符:

// 示例:从products集合中排除category字段为"electronics"的文档
db.products.find({ category: { $ne: "electronics" } })

如果是数组字段,要排除包含特定元素的数组,用$nin:

// 示例:排除tags数组中包含"sale"的文档
db.products.find({ tags: { $nin: ["sale"] } })

2. 模糊排除包含特定词汇的内容

如果要筛选出字段内容不包含指定词汇(比如文本字段里的子字符串),用正则表达式结合$not:

// 示例:排除description字段包含"waterproof"的文档
db.products.find({ description: { $not: /waterproof/ } })

如果需要忽略大小写匹配,给正则加上i选项:

db.products.find({ description: { $not: /waterproof/i } })

如果要确保匹配包含换行符的长文本,同时忽略大小写,用s和i选项结合反向正则:

db.products.find({ 
  description: { 
    $regex: /^((?!waterproof).)*$/, 
    $options: "si" 
  } 
})

注意事项

  • 默认情况下,上述查询会包含没有该字段的文档。如果要只筛选存在目标字段且不包含特定词汇的文档,加上$exists: true:
    db.products.find({ 
      description: { 
        $exists: true,
        $not: /waterproof/ 
      } 
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:25:18