sql >> Databasteknik >  >> NoSQL >> MongoDB

Sortera dokument efter värde i det sista elementet i en array som matchar filter. Mongodb

Du kan använda $filter operatör,

  • $filter för att filtrera Evaluations array på basen av Status
  • $max för att få senaste EvaluatedAt formulärfiltrerat 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 } }
])

Lekplats




  1. Behåller Redis data?

  2. Min $or-väljare i ett databasutlösare matchningsuttryck fungerar inte på den andra nivån av kapsling när du konfigurerar en databasutlösare

  3. MongoDB kapslad grupp?

  4. Mongodb/Mongoid - vad betyder {:multi => sant}