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

MongoDB中如何排除from_id与chat_id值相同的文档?

解决MongoDB排除from_id与chat_id相同文档的问题

你之前用from_id: { $ne: '$chat_id' }不生效的原因是:MongoDB会把'$chat_id'识别成普通字符串,而非引用文档里的chat_id字段,自然没法正确对比两个字段的值。

下面是两种可行的实现方法:

方法1:直接查询时用$expr

通过$expr允许查询条件使用聚合表达式,实现字段间的比较:

db.collection.find({
  $expr: { $ne: ['$from_id', '$chat_id'] }
})

这里$ne数组内的两个元素都是字段引用,能准确判断from_id和chat_id的值是否不同。

方法2:聚合管道中使用$match

如果需要结合其他聚合操作,可在$match阶段用同样的逻辑:

db.collection.aggregate([
  {
    $match: {
      $expr: { $ne: ['$from_id', '$chat_id'] }
    }
  }
])

内容的提问来源于stack exchange,提问作者Дмитрий Коляда

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:33:10