sql >> Databasteknik >  >> NoSQL >> MongoDB

lägg till villkor till de senaste värdenas resultat

När en operation innebär att stänga av ett fullständigt dokument, tänk på $group . Att lägga till detta i din pipeline bör peka dig i rätt riktning.

(lekplats)

db.collection.aggregate([
  {
    "$group": {
      _id: "cars",
      "cars": {
        "$push": {
          "$cond": [
            {
              "$ne": [
                {
                  "$arrayElemAt": [
                    "$mostRecentValues",
                    0
                  ]
                },
                {
                  "$arrayElemAt": [
                    "$mostRecentValues",
                    1
                  ]
                }
              ]
            },
            "$$ROOT",
            "$$REMOVE"
          ]
        }
      }
    }
  },
  {
    $unwind: "$cars"
  }
])

Om du bara har 3 fält på varje dokument kan du lägga till:

  {
    $project: {
      car_id: "$cars.car_id",
      mostRecentTime: "$cars.mostRecentTime",
      mostRecentValues: "$cars.MostRecentValues"
    }
  }



  1. Mongoose går med i två samlingar och får refererade data i två egenskaper

  2. Azure CosmosDB med Mongo-drivrutiner:Få Count Utan att hämta alla dokument baserade på element i underdokument i C#.Net

  3. MongoDB $push vs $addToSet:Vad är skillnaden?

  4. Rails, Mongoid &Unicorn config för Heroku