sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb lägg till räknare till varje hämtat dokument

Även om svaret som nämns av @prasad_ verkar fungera, har $unwind sedan Mongodb 3.2 includeArrayIndex-alternativ som gör det lättare att uppnå:

db.collection.aggregate([
  {
    $group: {
      _id: null,
      data: {
        $push: "$$ROOT"
      }
    }
  },
  {
    $unwind: {
      path: "$data",
      includeArrayIndex: "counter",

    }
  },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          "$data",
          {
            counter: {
              $add: [
                "$counter",
                1
              ]
            }
          }
        ]
      }
    }
  }
])

Det sista steget är här bara för att omforma dina dokument och lägga till 1 till varje räknare, eftersom den är 0-baserad (baserat på arrayindex)

Du kan testa det här.



  1. Mongogrupp och push:trycker på alla fält

  2. Hur man säkrar MongoDB med användarnamn och lösenord

  3. Hur fungerar redis för att hjälpa till att hålla i sessionen i azurblått fönster

  4. Distribuera MongoDB i ett Amazon Virtual Private Cloud (VPC)