MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में सरणियों से 0 मानों को हटा दें यदि 0 के बाद> =1 है

एक तरीका यह है:

db.collection.aggregate([
   {
      $set: {
         data: {
            $let: {
               vars: {
                  val: "$data_start",
                  prev: { $concatArrays: [[null], "$data_start"] } // shift values by one element 
               },
               in: {
                  $map: {
                     input: { $range: [0, { $size: "$$val" }] },
                     as: "idx",
                     in: {
                        $cond: {
                           if: {
                              $and: [
                                 { $eq: [{ $arrayElemAt: ["$$val", "$$idx"] }, 0] }, // is 0
                                 { $eq: [{ $arrayElemAt: ["$$val", "$$idx"] }, { $arrayElemAt: ["$$prev", "$$idx"] }] } // is equal to previous
                              ]
                           },
                           then: null,
                           else: {
                              data_start: { $arrayElemAt: ["$$val", "$$idx"] },
                              time_start: { $arrayElemAt: ["$time_start", "$$idx"] }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   },
   {
      $set: {
         data: {
            $filter: {
               input: "$data",
               cond: "$$this"// -> removes null's from array
            }
         }
      }
   }
])

हो सकता है कि आपको स्थिति को ठीक करना हो और/या लूप को उलटना पड़े, यानी input: { $range: [{ $size: "$$val" }, 0, -1] }

मोंगो खेल का मैदान



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में किसी अन्य नंबर फ़ील्ड का उपयोग करके किसी संख्या फ़ील्ड को कैसे अपडेट करें?

  2. मोंगोडब में उल्कापिंड के साथ आबाद

  3. MongoDB - सम्मिलित आइटम की वापसी आईडी

  4. MongoDB में एक दायरे के भीतर क्वेरी स्थान

  5. MongoDB $regex क्वेरी और संभावित कारनामे