sql >> Database teknologi >  >> NoSQL >> MongoDB

Sorter forespørgselsresultater baseret på beskrivelsesværdi af indlejret underdokument i array Mongoose/Mongodb

Vi kan ikke sortere array direkte, men aggregering hjælper det

  • $unwind hjælper med at destrukturere arrayet
  • $sort hjælper med at sortere, som du ønsker
  • $group hjælper med at omgruppere det destrukturerede array

Mongo script er givet nedenfor

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

Arbejd Mongo legeplads




  1. Bestem effektivt ejeren af ​​en post i et hierarki med MongoDB

  2. MongoDB Selvsigneret SSL-forbindelse:SSL-peer-certifikatvalidering mislykkedes

  3. Ember-data og MongoDB, hvordan man håndterer _id

  4. Krav til brug af MongoDB-transaktioner