sql >> Database >  >> NoSQL >> MongoDB

Sorteer documenten op waarde in het laatste element van een array die overeenkomt met filter. Mongodb

U kunt $filter . gebruiken telefoniste,

  • $filter om Evaluations te filteren array op basis van Status
  • $max om de nieuwste EvaluatedAt . te krijgen formulier gefilterd resultaat
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 } }
])

Speeltuin




  1. MongoDB:trage zoekopdracht, zelfs met index

  2. MongoDB $ lookup-pijplijnovereenkomst door _id werkt niet

  3. Creëer een uniek autoincrement-veld met mangoest

  4. Heeft iemand CouchDB en verschillende offline implementaties (PouchDB) geprobeerd?