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

MongoDB聚合后如何检查文档内userId与user_Id字段是否相等

检查MongoDB文档中userId与paymentData.user_Id是否相等的方法

1. 筛选出两个字段相等的文档

不管是在聚合管道里还是普通查询中,都可以用$expr配合$eq操作符直接比较两个字段的值:

聚合管道示例(在unwind之后添加筛选阶段)

db.collection.aggregate([
  // 保留你已有的unwind阶段
  { $unwind: "$paymentData" },
  // 筛选userId与paymentData.user_Id相等的文档
  {
    $match: {
      $expr: { $eq: ["$userId", "$paymentData.user_Id"] }
    }
  }
])

普通查询示例

db.collection.find({
  $expr: { $eq: ["$userId", "$paymentData.user_Id"] }
})

2. 给所有文档添加匹配状态标记

如果不想过滤掉不相等的文档,而是想直观查看每个文档的匹配结果,可以用$addFields新增一个标记字段:

db.collection.aggregate([
  { $unwind: "$paymentData" },
  {
    $addFields: {
      isUserIdMatch: { $eq: ["$userId", "$paymentData.user_Id"] }
    }
  }
])

执行后每个文档会多出一个isUserIdMatch字段,值为true或false,一眼就能判断两个字段是否相等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:50:11