Mongodb: $susbtr işlevi nasıl kullanılır?


Bir dizeden bir alt dize çıkarmak için MongoDB’deki $substr işlevini kullanabilirsiniz.

Bu işlev aşağıdaki temel sözdizimini kullanır:

 db.myCollection.aggregate([
  { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}}
])

Bu özel örnek, 0 konumundan başlayarak “fullString” etiketli alandan dört karakterin tümünü çıkarır.

Aşağıdaki örnek, bu sözdiziminin pratikte aşağıdaki belgelerle bir koleksiyon satışında nasıl kullanılacağını gösterir:

 db.sales.insertOne({yearMonth: 201702, amount: 40 })
db.sales.insertOne({yearMonth: 201802, amount: 32 })
db.sales.insertOne({yearMonth: 201806, amount: 19 })
db.sales.insertOne({yearMonth: 201910, amount: 29 })
db.sales.insertOne({yearMonth: 201907, amount: 35 })

Örnek: MongoDB’de $susbtr işlevi nasıl kullanılır?

“yearMonth” alanından ilk dört karakteri çıkarmak ve bunları “year” adlı yeni bir alanda görüntülemek için aşağıdaki kodu kullanabiliriz:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}
])

Bu kod aşağıdaki sonucu üretir:

 { _id: ObjectId("620145544cb04b772fd7a929"), year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"), year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"), year: '2019' }

Her belgenin “ayYıl” alanının ilk dört karakterinin “yıl” etiketli yeni bir alanda görüntülendiğini unutmayın.

Bu kodun yalnızca alt dizeyi görüntülediğine dikkat etmek önemlidir.

Bu alt dizeyi içeren koleksiyona gerçekten yeni bir alan eklemek için $merge işlevini aşağıdaki gibi kullanmamız gerekir:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}},
  { $merge : "sales" }
])

Güncellenen koleksiyon artık şöyle görünüyor:

 { _id: ObjectId("620145544cb04b772fd7a929"),
  yearMonth: 201702,
  amount: 40,
  year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"),
  yearMonth: 201802,
  amount: 32,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"),
  yearMonth: 201806,
  amount: 19,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"),
  yearMonth: 201910,
  amount: 29,
  year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"),
  yearMonth: 201907,
  amount: 35,
  year: '2019' }

Koleksiyondaki her belgeye “yıl” başlıklı yeni alanın eklendiğini ve “yılAy” alanının ilk dört karakterini görüntülediğini unutmayın.

Not : $substr işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde MongoDB’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

MongoDB: Alanın bir dize içerip içermediği nasıl kontrol edilir
MongoDB: İki alanın dizeleri nasıl birleştirilir
MongoDB: Dizeler nasıl değiştirilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir