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

Сортиране на резултатите от заявката за низходяща стойност на вложен поддокумент в масив Mongoose/Mongodb

Не можем да сортираме масив директно, но агрегирането ни помага

  • $unwind помага за деструктуриране на масива
  • $sort помага да сортирате по ваше желание
  • $group помага за повторното групиране на деструктурирания масив

Mongo скриптът е даден по-долу

db.collection.aggregate([
  {
    "$match": {
      "serviceAreas.slug": "nashville"
    }
  },
  {
    $unwind: "$serviceAreas"
  },
  {
    $sort: {
      "serviceAreas.totalClosedSales": -1
    }
  },
  {
    $addFields: {
      total: "$serviceAreas.totalClosedSales"
    }
  },
  {
    $sort: {
      total: -1
    }
  },
  {
    $group: {
      _id: "$_id",
      mlsId: {
        $first: "$mlsId"
      },
      firstName: {
        $first: "$firstName"
      },
      lastName: {
        $first: "$lastName"
      },
      slug: {
        $first: "$slug"
      },
      serviceAreas: {
        $push: "$serviceAreas"
      }
    }
  }
])

Работеща Mongo playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране с AddToSet без актуализиране на нулева стойност с MongoDB C#

  2. Актуализирайте едно поле в MongoDB в един вграден документ

  3. Запитване за списък на всички отделни полета в колекцията MongoDB

  4. Вложен масив $pull заявка с помощта на C# MongoDB драйвер

  5. MongoDB:не може да промени, ако обектът на заявка и обектът за актуализиране съдържат едно и също свойство, „Не може да се приложи модификатор $addToSet към не-масив“