如何匹配两个字段都不存在

how to match both fields are not exist

  1. 我试图使用 $and 来表示两个字段都是空的
  2. 这是代码
    db.tweets_v2.aggregate({
      {match:{$and:[{replyto_id:$exist:false},{replyto_id:$exist:false}]}
    });

几乎没有修复,

  • $exist 应该是 $exists
  • $exists
  • 前后缺少 {} 个括号
  • 匹配应该是 $match
  • 聚合阶段从 [] 开始而不是 {}
db.tweets_v2.aggregate([
  {
    $match: {
      $and: [
        { replyto_id: { $exists: false } },
        { replyfrom_id: { $exists: false } } // change your second field name
      ]
    }
  }
])

Playground

实际上不需要 $and,这个也可以:

db.tweets_v2.aggregate([
  {
    $match: {
        replyto_id: { $exists: false } ,
        replyfrom_id: { $exists: false }
    }
  }
])