sql >> Databasteknik >  >> NoSQL >> MongoDB

Sortera frågeresultat baserat på desc-värdet för kapslade underdokument inom arrayen Mongoose/Mongodb

Vi kan inte sortera array direkt, men aggregering hjälper det

  • $unwind hjälper till att destrukturera arrayen
  • $sort hjälper till att sortera som du vill
  • $group hjälper till att omgruppera den destrukturerade arrayen

Mongo-skriptet ges nedan

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

Arbetande Mongo lekplats




  1. "IdentityContext" kunde inte hittas (saknar du ett användningsdirektiv eller en monteringsreferens)

  2. Mongoose Promise-fel

  3. Hur man utvecklar applikationer för MongoDB och Redpanda med Docker Compose

  4. OData Jaydata - begäran om odatauppdatering returnerar fel 404 (SAPUI5, nod)