sql >> Base de Datos >  >> NoSQL >> MongoDB

Consulta Mongoose para ordenar el documento principal y el subdocumento por campo en particular

Actualmente, ordenar no es posible directamente dentro de los objetos de matriz,

Puedes hacer 2 opciones,

  • si está obteniendo datos de la búsqueda, use búsqueda con tubería permitirá usar $sort canalización dentro de los documentos de coincidencia
  • $desenrollar la matriz => $ordenarla => nuevamente $agruparla en una matriz, Consultar SO Respuesta

aquí estás usando $lookup , en lugar de una búsqueda simple, puede usar "$búsqueda con canalización".

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

Patio de juegos

Segunda solución posible:Patio de juegos