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

MongoDB Atlas Data API中updateMany如何用$oid处理_id数组?

MongoDB Atlas Data API 中用$in匹配ObjectId数组的正确写法

你当前用$or结合map生成多个_id条件的写法是可行的,但性能不如直接用$in高效。你尝试的两种写法都无法生效,原因如下:

  • 第一种写法里的$map是聚合管道操作符,只能在聚合阶段使用,不能直接放在查询过滤器中,所以$in无法识别这种用法。
  • 第二种写法的$oid只能接收单个字符串ID,不能直接传入数组,语法本身就不合法。

正确的优化写法是直接把ID数组转换成每个元素都是{ "$oid": id }的格式,再传入$in:

filter: { _id: { $in: _ids.map(id => ({ "$oid": id })) } }

这种写法和你原来的$or方案逻辑一致,但$in是MongoDB专门针对数组匹配优化的操作符,查询性能会更好,代码也更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:15:45