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

问题描述

  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 }
    }
  }
])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...