как сопоставить оба поля, которые не существуют

#mongodb #mongodb-query #mongodb-shell

#mongodb #mongodb-запрос #mongodb-оболочка

Вопрос:

  1. Я пытался использовать $and , чтобы выразить, что оба поля пусты
  2. Вот код
     db.tweets_v2.aggregate({
      {match:{$and:[{replyto_id:$exist:false},{replyto_id:$exist:false}]}
    });
  

Комментарии:

1. Это все еще не сработало, не могли бы вы, пожалуйста, предоставить мне полный код? Спасибо

2. Большое вам спасибо, теперь это работает

Ответ №1:

Есть несколько исправлений,

  • $exist должно быть $exists
  • пропущенные {} скобки до и после в $exists
  • совпадение должно быть $match
  • этапы агрегирования начинаются с [] not {}
 db.tweets_v2.aggregate([
  {
    $match: {
      $and: [
        { replyto_id: { $exists: false } },
        { replyfrom_id: { $exists: false } } // change your second field name
      ]
    }
  }
])
  

Игровая площадка

Ответ №2:

На самом деле $and не требуется, это тоже будет работать:

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

Комментарии:

1. Спасибо, что напомнили, это тоже действительно полезно.