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

MongoDB中.find方法是否支持传入数组作为查询键实现反向匹配

MongoDB 反向匹配数组查询条件实现方案

你目前使用的$in操作符用于匹配字段值存在于指定数组中的文档,要实现反向的匹配效果,可以使用$nin(全称为 not in)操作符,对应写法如下:
db.collection.find({"phoneNumber.type": { $nin: ["ACD", "BFG"] } })

效果说明

上述查询会返回所有phoneNumber.type值不在["ACD", "BFG"]数组范围内的文档,和你原有$in写法的查询结果完全相反。

常见注意事项

  • 如果目标字段不存在,或者字段值为null,$nin会默认判定这类值不属于你指定的数组,因此会命中对应文档。如果你需要排除这类无效数据,可以额外补充字段存在的校验条件:
    db.collection.find({"phoneNumber.type": { $exists: true, $nin: ["ACD", "BFG"] } })
  • 你也可以用$not搭配$in实现等价效果,绝大多数场景下和$nin的返回结果一致:
    db.collection.find({"phoneNumber.type": { $not: { $in: ["ACD", "BFG"] } } })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:24:03