【问题标题】:how to match both fields are not exist如何匹配两个字段都不存在
【发布时间】:2020-12-28 03:52:13
【问题描述】:
  1. 我试图用$and 表示两个字段都是空的
  2. 这里是代码
    db.tweets_v2.aggregate({
      {match:{$and:[{replyto_id:$exist:false},{replyto_id:$exist:false}]}
    });

【问题讨论】:

  • 还是不行,能否给我完整的代码?谢谢
  • 非常感谢,现在可以了

标签: mongodb mongodb-query mongodb-shell


【解决方案1】:

其实$and 是不需要的,这个也可以:

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

【讨论】:

  • 谢谢提醒,这个也很有帮助。
【解决方案2】:

修复很少,

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

Playground

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 2020-12-10
  • 2020-07-23
  • 2023-03-21
  • 1970-01-01
  • 2014-08-28
  • 2018-07-11
相关资源
最近更新 更多