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

मोंगोडब वाक्यांश की कई घटनाओं को कैसे बदलें

$reduce आपके उपयोग के मामले में बेहतर फिट बैठता है:

स्यूडोकोड

value = url.split("_2000x")[0]
for (item: url.split("_2000x")[1:])
    value += "_850x" + item
db.collection.aggregate([
  {
    $match: {
      imageUrl: {
        $regex: "_2000x"
      },
      brand: "Goat The Label"
    }
  },
  {
    $addFields: {
      imageUrl: {
        $reduce: {
          input: {
            $slice: [
              {
                $split: [
                  "$imageUrl",
                  "_2000x"
                ]
              },
              1,
              {
                $size: {
                  $split: [
                    "$imageUrl",
                    "_2000x"
                  ]
                }
              }
            ]
          },
          initialValue: {
            $arrayElemAt: [
              {
                $split: [
                  "$imageUrl",
                  "_2000x"
                ]
              },
              0
            ]
          },
          in: {
            $concat: [
              "$$value",
              "_850x",
              "$$this"
            ]
          }
        }
      }
    }
  }
])

MongoPlayground

संपादित करें: बैश शेल के माध्यम से निष्पादित करने के लिए:

विंडोज़:

इसके साथ temp.js फ़ाइल बनाएँ:

db.collection.aggregate(...).forEach(...)

के साथ temp.bat फ़ाइल बनाएँ:

@echo off

path/to/mongo.exe --uri put_here_mongodb+srv temp.js

अब चलाएँ:temp.bat

यूनिक्स:

इसके साथ temp.js फ़ाइल बनाएँ:

db.collection.aggregate(...).forEach(...)

के साथ temp.bat फ़ाइल बनाएँ:

#!/bin/bash

path/to/mongo --uri put_here_mongodb+srv temp.js

निष्पादन की अनुमति दें:chmod u+x temp.sh
अब चलाएँ:./temp.sh




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेस्टेड सरणी संग्रह से पुनर्प्राप्त करने के लिए mongoDB क्वेरी

  2. पिरामिड 1.1 और मोंगो डीबी को कैसे एकीकृत करें - यथासंभव कुछ पंक्तियाँ

  3. स्केलेबल फ़ाइल संग्रहण

  4. Mongodb में मान से फ़ील्ड गुणा करें

  5. मैं MongoDB में दो सरणियों को कैसे अनुक्रमित करूं?