MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

cara mengganti beberapa kemunculan frasa mongodb

$reduce lebih cocok untuk kasus penggunaan Anda:

Kode semu

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

EDIT: Untuk mengeksekusi melalui Bash shell:

Windows:

buat file temp.js dengan:

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

buat file temp.bat dengan:

@echo off

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

Sekarang jalankan:temp.bat

Unix:

buat file temp.js dengan:

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

buat file temp.bat dengan:

#!/bin/bash

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

Berikan izin eksekusi:chmod u+x temp.sh
Sekarang jalankan:./temp.sh




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. String Concat berdasarkan Grup

  2. mongorestore gagal karena BSONSize tidak valid

  3. Filter MongoDB berdasarkan properti array hanya jika ada

  4. Pemuatan lambat di MongoDB dengan NoRM

  5. Pembaruan MongoDB Banyak dengan Bersyarat