MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consulta do Mongoose para classificar o documento principal e o subdocumento por campo específico


Atualmente a classificação não é possível diretamente dentro de objetos de matriz,

Você pode fazer 2 opções,
  • se você estiver obtendo dados da pesquisa, use pesquisa com pipeline permitirá usar $sort pipeline nos documentos de correspondência
  • $unwind the array => $sort it => novamente $group it into array, Refer SO Resposta

aqui você está usando $lookup , em vez de uma pesquisa simples, você pode usar "$lookup with pipeline".
  {
    $lookup: {
      from: "tags",
      as: "tags",
      let: { id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$id", "$tag_type"] }
          }
        },
        {
          $sort: { order: -1 }
        }
      ]
    }
  },

Playground

Segunda solução possível:Playground