Mongodb: cara membagi string menjadi array substring
Anda dapat menggunakan sintaks berikut untuk membagi string menjadi array substring di MongoDB:
db.myCollection.aggregate([ { $project : { split_field: { $split : [ " $field1 ", " " ] } } }, { $merge : "myCollection" } ])
Contoh khusus ini membagi string “field1” berdasarkan spasi menjadi kolom baru bernama “split_field” dan menambahkan kolom baru ke koleksi bernama myCollection .
Contoh berikut memperlihatkan cara menggunakan sintaksis ini dalam praktik dengan tim koleksi dengan dokumen berikut:
db.teams.insertOne({name: " Dallas Mavs ", points: 31}) db.teams.insertOne({name: " San Antonio Spurs ", points: 22}) db.teams.insertOne({name: " Houston Rockets ", points: 19}) db.teams.insertOne({name: " Boston Celtics ", points: 26}) db.teams.insertOne({name: " Cleveland Cavs ", points: 33})
Contoh: Membagi sebuah String menjadi Array Substring di MongoDB
Kita dapat menggunakan kode berikut untuk membagi string di kolom “nama” menjadi array string dan menampilkan hasilnya di bidang baru bernama “split_name” di koleksi tim :
db.teams.aggregate([ { $project : { split_name: { $split : [ " $name ", " " ] } } }, { $merge : "teams" } ])
Seperti inilah tampilan koleksi yang diperbarui sekarang:
{ _id: ObjectId("62014a924cb04b772fd7a938"), name: 'Dallas Mavs', points: 31, split_name: ['Dallas', 'Mavs'] } { _id: ObjectId("62014a924cb04b772fd7a939"), name: 'San Antonio Spurs', points: 22, split_name: ['San', 'Antonio', 'Spurs'] } { _id: ObjectId("62014a924cb04b772fd7a93a"), name: 'Houston Rockets', points: 19, split_name: ['Houston', 'Rockets'] } { _id: ObjectId("62014a924cb04b772fd7a93b"), name: 'Boston Celtics', points: 26, split_name: ['Boston', 'Celtics'] } { _id: ObjectId("62014a924cb04b772fd7a93c"), name: 'Cleveland Cavs', points: 33, split_name: ['Cleveland', 'Cavs'] }
Perhatikan bahwa setiap dokumen memiliki bidang baru bernama “split_name” yang berisi array substring dari bidang “nama”.
Untuk contoh khusus ini, kami memilih untuk memisahkan string asli menggunakan spasi kosong sebagai pembatas.
Jika string dipisahkan oleh pembatas yang berbeda (seperti tanda hubung, garis miring, titik dua, dll.), cukup gunakan pembatas tersebut di fungsi $split .
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $split di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara memeriksa apakah bidang berisi string
MongoDB: Cara menambahkan bidang baru
MongoDB: Cara menghapus bidang