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

MongoDB如何查询判断文档中currentId是否存在于selectedIds数组中

错误原因

你之前的写法报错是因为常规查询操作符里的$in只能接收字面量数组,不能直接引用同文档的其他字段值,要引用文档字段需要用$expr运算符结合聚合表达式实现。

正确查询语句

1. 普通find查询写法

db.collection.find({
  "selectedIds": { "$exists": true },
  "$expr": {
    "$in": ["$currentId", "$selectedIds"]
  }
})

2. 聚合管道$match阶段写法

如果你是在聚合查询中使用,写法如下:

{
  "$match": {
    "selectedIds": { "$exists": true },
    "$expr": {
      "$in": ["$currentId", "$selectedIds"]
    }
  }
}

语法说明

  • $expr允许在查询语句中使用聚合表达式,支持引用同一份文档中的字段值
  • 聚合版本的$in接收两个参数:第一个是要查找的值,第二个是目标数组,刚好匹配「判断currentId是否在selectedIds中」的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:24:05