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

mongodb tilføje tæller til hvert hentede dokument

Selvom svaret nævnt af @prasad_ ser ud til at virke, har $unwind siden Mongodb 3.2 includeArrayIndex mulighed, der gør det nemmere at opnå:

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

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

Sidste trin er her bare for at omforme dine dokumenter og tilføje 1 til hver tæller, da den er 0-baseret (baseret på matrixindeks)

Du kan teste det her.



  1. Annoncering af ClusterControl 1.4.2 - DevOps Edition

  2. Oversæt Queryable<T> tilbage til IMongoQuery

  3. I NodeJS, hvordan udlæses resultater fra mongodb med forskellige feltnavne?

  4. Hvordan pipelines i node.js til redis?