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

Sorter dokumenter efter værdi i det sidste element i en matrix, der matcher filter. Mongodb

Du kan bruge $filter operatør,

  • $filter for at filtrere Evaluations array på basis af Status
  • $max for at få seneste EvaluatedAt formfiltreret resultat
db.collection.aggregate([
  {
    $addFields: {
      lastSent: {
        $let: {
          vars: {
            filtered: {
              $filter: {
                input: "$Evaluations",
                cond: { $eq: ["$$this.Status", "triggered"] }
              }
            }
          },
          in: { $max: "$$filtered.EvaluatedAt" }
        }
      }
    }
  },
  { $sort: { lastSent: 1 } },
  { $project: { lastSent: 0 } }
])

Legeplads




  1. MongoDB $dayOfMonth

  2. At forvandle et Mongoose seeding script til et løfte

  3. Opret MongoDB-bruger, som kun kan administrere de dokumenter, han har oprettet

  4. Sådan repareres skæve Hash-slots i Redis