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

MongoDB $rtrim

Di MongoDB, $rtrim operator pipa agregasi menghapus spasi dari akhir string. Ini termasuk karakter nol.

Itu juga dapat menghapus karakter apa pun yang ditentukan. Misalnya, Anda dapat menggunakannya untuk menghapus semua titik (. ), tanda seru (! ), dll dari akhir string.

Contoh

Misalkan kita memiliki koleksi yang disebut pets dengan dokumen berikut:

{ "_id" : 1, "name" : "Wag!!!", "type" : "   Dog   ", "weight" : 20 }

Kita dapat melihat bahwa type bidang menyertakan spasi putih di kedua sisi kata Dog . Kita dapat menggunakan $rtrim operator untuk mengembalikan bidang itu dengan spasi dihapus dari bagian kanan string.

Contoh:

db.pets.aggregate([
  { 
    $project: { 
      name: 1, 
      type: { $rtrim: { input: "$type" } } 
    } 
  }
])

Hasil:

{ "_id" : 1, "name" : "Wag!!!", "type" : "   Dog" } 

Seperti yang diharapkan, type bidang telah dikembalikan tanpa spasi putih di bagian akhir. Spasi di awal masih ada.

Anda juga dapat menggunakan $ltrim operator untuk memangkas bagian kiri string, dan $trim operator untuk memotong kedua sisi string.

Ada beberapa karakter yang dianggap MongoDB sebagai karakter spasi. Lihat Karakter Spasi MongoDB untuk daftar lengkapnya.

Potong Karakter Lain

$rtrim operator menerima chars parameter yang memungkinkan Anda menentukan karakter mana yang akan dipotong.

Contoh:

db.pets.aggregate([
  { 
    $project: {
      name: { $rtrim: { input: "$name", chars: "!" } } 
    } 
  }
])

Hasil:

{ "_id" : 1, "name" : "Wag" } 

Dalam hal ini kami menyertakan chars parameter dengan tanda seru (! ), yang mengakibatkan ketiga tanda seru dihilangkan dari akhir string.

Potong Beberapa Karakter

Anda dapat memangkas beberapa karakter dengan memasukkan semuanya ke dalam chars argumen.

Contoh:

db.pets.aggregate([
  { 
    $project: { 
      name: { $rtrim: { input: "$name", chars: "!g" } } 
    } 
  }
])

Hasil:

{ "_id" : 1, "name" : "Wa" } 

Dalam hal ini, saya memberikan dua karakter sebagai chars saya argumen, dan dua dari karakter itu kebetulan berada di akhir string. Oleh karena itu, kedua karakter tersebut dipangkas.

Namun, berhati-hatilah saat melakukan ini. Inilah yang terjadi jika saya memasukkan semua karakter:

db.pets.aggregate([
  { 
    $project: { 
      name: { $rtrim: { input: "$name", chars: "!agW" } } 
    } 
  }
])

Hasil:

{ "_id" : 1, "name" : "" }

Seluruh string telah menghilang. Itu tidak hanya memangkas ! dan g dari string, tetapi juga telah menghapus W dan a karakter.

Memotong Angka

$rtrim operator bekerja pada string. Jika kita mencoba memangkas weight lapangan, kami mendapatkan kesalahan. Ini karena weight bidang adalah angka, bukan string.

db.pets.aggregate([
  { 
    $project: { 
      name: 1, 
      weight: { $rtrim: { input: "$weight", chars: "0" } } 
    } 
  }
])

Hasil:

Error: command failed: {
	"ok" : 0,
	"errmsg" : "$rtrim requires its input to be a string, got 20 (of type double) instead.",
	"code" : 50699,
	"codeName" : "Location50699"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

Kesalahan memberitahu kami bahwa kami memberikan ganda, dan bahwa $rtrim operator membutuhkan inputnya berupa string.

Jika kita benar-benar ingin menghapus nol, kita harus mengubahnya menjadi string terlebih dahulu. Kita dapat melakukannya dengan $convert atau $toString operator.

Contoh:

db.pets.aggregate([
  { 
    $project: { 
      name: 1, 
      weight: { $rtrim: { input: { $toString: "$weight" }, chars: "0" } }
    }
  }
])

Hasil:

{ "_id" : 1, "name" : "Wag!!!", "weight" : "2" } 

Kita dapat mengembalikannya menjadi dua kali lipat dengan menggunakan $convert atau $toDouble operator.

Contoh lengkap:

db.pets.aggregate([
  { 
    $project: { 
      name: 1, 
      weight: { $toDouble: { $rtrim: { input: { $toString: "$weight" }, chars: "0" } } }
    }
  }
])

Hasil:

{ "_id" : 1, "name" : "Wag!!!", "weight" : 2 } 

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Enam Komponen Penting dari Tata Kelola Data yang Berhasil

  2. Luwak findOneAndUpdate dan runValidators tidak berfungsi

  3. Konversi DBObject ke POJO menggunakan MongoDB Java Driver

  4. Cara Membagi Shard Key Berbasis GUID Secara Terprogram dengan MongoDB

  5. otentikasi mongodb dengan string koneksi