sql >> Databáze >  >> NoSQL >> MongoDB

Přidejte pole s rostoucí hodnotou v agregaci MongoDB na základě podmínky

Tato agregace přidá pole s čítačem:

db.collection.aggregate( [
  { 
      $match: { 
          joining_date: { $exists: true } 
      } 
  },
  { 
      $group: { 
          _id: null, 
          docs: { $push: "$$ROOT" } 
      } 
  },
  { 
      $project: { 
          _id: 0,
         R: { 
             $map: {
                 input: { $range: [ 0, { $size: "$docs" } ] },
                 in: {
                     $mergeObjects: [ 
                         { joining_date_count: { $add: [ "$$this", 1 ] } },
                         { $arrayElemAt: [ "$docs", "$$this" ] }
                     ]
                 }
             }
         }
      }
  },
  { 
      $unwind: "$R" 
  },
  { 
      $replaceRoot: { newRoot: "$R" } 
  }
] )


  1. Zmatená terminologie Mongoose/Mongo. Jsou Sub-Docs/Embedded-Docs také kolekcemi?

  2. mongo db agregát randomize ( shuffle ) results

  3. Připojte se ke dvěma sbírkám v MongoDB

  4. Kde MongoDB ukládá své dokumenty?