MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb добавя брояч към всеки извлечен документ

Въпреки че отговорът, споменат от @prasad_, изглежда работи, $unwind от Mongodb 3.2 включва опция за ArrayIndex, която улеснява постигането му:

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

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

Последният етап е тук само за да промените вашите документи и да добавите 1 към всеки брояч, тъй като е базиран на 0 (въз основа на индекс на масив)

Можете да го тествате тук.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Въведение в Morphia – Java ODM за MongoDB

  2. MongoDB „не може да намери индекс за $geoNear заявка“

  3. Добавете водещи нули в SQL

  4. Изберете записи, съответстващи на конкатна стойност на две полета в mongodb

  5. Как да върна резултатите от Mongoose от метода за намиране?