Mongodb: 文字列の長さを調べる方法


次のメソッドを使用して、MongoDB 内の文字列の長さを検索し、その文字列の長さをクエリで使用できます。

方法 1: チェーンの長さを求める

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

方法 2: 文字列が一定の長さを超えるドキュメントを検索する

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

次の例は、次の文書を使用して収集チームで各方法を使用する方法を示しています

 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})

例 1: 文字列の長さを調べる

次のコードを使用して、各ドキュメントの「名前」フィールドの文字列の長さを計算できます。

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

このコードは次の結果を返します。

 { _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 }

長さの値は、「名前」列の文字列の長さを表示します。

例えば:

  • 「ダラス・マブス」チェーンの長さは11です。
  • 「サンアントニオ・スパーズ」チェーンの長さは17です。

等々。

長さには空のスペースもカウントされることに注意してください。

例 2: 文字列が一定の長さを超えるドキュメントを検索する

次のコードを使用すると、「name」列の文字列が14より大きいドキュメントのみを返すことができます。

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

このクエリは次の結果を返します。

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

返されるチームは、「name」フィールドが14より大きい 2 チームだけであることに注意してください。

: $strLenCP関数の完全なドキュメントはここにあります。

追加リソース

次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。

MongoDB: 文字列を部分文字列の配列に分割する方法
MongoDB: 2 つのフィールドの文字列を連結する方法
MongoDB: 文字列を置換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です