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

MongoDB筛选:如何保留history_doc.data.objectId等于_id的数据?

MongoDB筛选history_doc.data.objectId与_id相等的文档

需求:仅保留history_doc.data.objectId字段值与_id字段值相等的文档。

你尝试过的过滤条件:

  • {'history_doc.data.objectId': {$eq: '$_id'}}
  • {'history_doc.data.objectId': {$eq: {$toString: '$_id'}}}

正确解决方案

MongoDB普通查询的过滤条件不支持直接用字段引用做比较,必须通过$expr启用表达式查询,根据字段类型选择对应写法:

  1. 若history_doc.data.objectId为ObjectId类型:
{ $expr: { $eq: ["$history_doc.data.objectId", "$_id"] } }
  1. 若history_doc.data.objectId为字符串类型:
{ $expr: { $eq: ["$history_doc.data.objectId", { $toString: "$_id" }] } }

如果是在聚合管道中使用,直接将上述条件放入$match阶段即可。

内容的提问来源于stack exchange,提问作者RF.ZHU

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:47:24