MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose-Abfrage zum Sortieren von Hauptdokument und Unterdokument nach einem bestimmten Feld

Momentan ist eine Sortierung nicht direkt innerhalb von Array-Objekten möglich,

Sie haben zwei Möglichkeiten,

  • Wenn Sie Daten aus der Suche erhalten, verwenden Sie Suche mit Pipeline es erlaubt die Verwendung von $sort Pipeline innerhalb von Match-Dokumenten
  • $entfernen Sie das Array => $sortieren Sie es => $gruppieren Sie es erneut in einem Array, Siehe SO Antwort

hier verwenden Sie $lookup , anstelle der einfachen Suche können Sie "$lookup with pipeline" verwenden.

  {
    $lookup: {
      from: "tags",
      as: "tags",
      let: { id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$id", "$tag_type"] }
          }
        },
        {
          $sort: { order: -1 }
        }
      ]
    }
  },

Spielplatz

Zweite mögliche Lösung:Spielplatz