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

MongoDB查询:仅返回item.price数组不含10与20的文档

MongoDB 查询:筛选所有item.price均不含指定值的文档

需求:从集合中找出所有item数组内的price元素全部都不包含10和20的文档,预期返回item.price为[30]和[30,40]的两个文档。

正确查询语句

db.collection.find({
  "item": {
    $not: {
      $elemMatch: {
        price: { $in: [10, 20] }
      }
    }
  }
})

逻辑说明

  • $elemMatch: { price: { $in: [10, 20] } }:检查item数组中是否存在price为10或20的元素。
  • $not对上述条件取反,确保item数组里没有任何一个元素的price是10或20,完全符合需求。

常见错误分析

如果直接使用"item.price": {$nin: [10,20]},逻辑是“数组中存在至少一个price不在[10,20]范围内”,这会误匹配那些同时包含20和30的文档(因为30不在列表里),无法满足“所有price都不含10和20”的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10