MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да използвате NOT IN array условие в mongodb $lookup aggregate

Трябва да използвате $not $in с $expr израз, защото $nin е оператор на заявка, а не за израз на агрегиране,

  • още една корекция, от която се нуждаете, за да създадете променлива с помощта на let: { following: "$following"} и използвайте вътре в конвейера $$following , тъй като конвейерът за справка няма да позволи достъп до полета без препратка,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Работеща игрална площадка:https://mongoplayground.net/p/08OT6NnuYHx




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Поддокумент за връщане на MongoDB NodeJS

  2. Добавяне на низ в края на съществуващо поле в MongoDB

  3. В Meteor.js, как бих накарал два проекта за разработка да използват един и същ екземпляр на Mongo?

  4. Обявяване на ClusterControl 1.4.2 - изданието DevOps

  5. Възможно ли е да се направи mongodump на последните x записа от колекция?