Mongodb: cara mencari panjang string
Anda dapat menggunakan metode berikut untuk menemukan panjang string di MongoDB dan menggunakan panjang string tersebut dalam kueri:
Metode 1: Temukan panjang rantai
db.myCollection.aggregate([ { $project : { "name": 1, "length": { $strLenCP : " $name " } }} ])
Metode 2: Temukan dokumen yang stringnya lebih besar dari panjang tertentu
db.myCollection.find({ "name": { $exists : true }, $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } })
Contoh berikut menunjukkan cara menggunakan setiap metode dengan tim pengumpulan 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 1: Mencari Panjang Tali
Kita dapat menggunakan kode berikut untuk menghitung panjang string di kolom “nama” setiap dokumen:
db.teams.aggregate([ { $project : { "name": 1, "length": { $strLenCP : " $name " } }} ])
Kode ini mengembalikan hasil berikut:
{ _id: ObjectId("62014eff4cb04b772fd7a93d"), name: 'Dallas Mavs', length: 11 } { _id: ObjectId("62014eff4cb04b772fd7a93e"), name: 'San Antonio Spurs', length: 17 } { _id: ObjectId("62014eff4cb04b772fd7a93f"), name: 'Houston Rockets', length: 15 } { _id: ObjectId("62014eff4cb04b772fd7a940"), name: 'Boston Celtics', length: 14 } { _id: ObjectId("62014eff4cb04b772fd7a941"), name: 'Cleveland Cavs', length: 14 }
Nilai panjang menampilkan panjang string di kolom “nama”.
Misalnya:
- Panjang rantai “Dallas Mavs” adalah 11 .
- Panjang rantai ‘San Antonio Spurs’ adalah 17 .
Dan seterusnya.
Perhatikan bahwa panjangnya juga menghitung ruang kosong.
Contoh 2: Temukan dokumen yang stringnya lebih besar dari panjang tertentu
Kita dapat menggunakan kode berikut untuk mengembalikan hanya dokumen yang stringnya di kolom “nama” lebih besar dari 14 :
db.teams.find({ "name": { $exists : true }, $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } })
Kueri ini mengembalikan hasil berikut:
{ _id: ObjectId("62014eff4cb04b772fd7a93e"), name: 'San Antonio Spurs', points: 22 } { _id: ObjectId("62014eff4cb04b772fd7a93f"), name: 'Houston Rockets', points: 19 }
Perhatikan bahwa hanya dua tim yang dikembalikan adalah tim yang kolom “nama”-nya lebih besar dari 14 .
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $strLenCP di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara membagi string menjadi array substring
MongoDB: Cara menggabungkan string dari dua bidang
MongoDB: Cara mengganti string di