Mongodb: フィールドに文字列が含まれているかどうかを確認する方法


MongoDB で次の構文を使用すると、特定のフィールドに特定の文字列が含まれているかどうかを確認できます。

 db.collection.findOne({ name : { $regex : /string/ }})

次の例は、次のドキュメントを使用して収集チームでこの構文を使用する方法を示しています。

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

例 1: フィールドに文字列が含まれているかどうかを確認する

次のコードを使用して、チーム フィールドに文字列「avs」を含むドキュメントがあるかどうかを確認できます。

 db.teams.findOne({ team : { $regex : /avs/ }}) 

このクエリは次のドキュメントを返します。

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

findOne()関数は、クエリ基準を満たすコレクション内の最初のドキュメントを返すことに注意してください。

これは、他のチームもチーム名に「avs」という文字列を含む可能性があるが、チーム名「Mavs」を含む文書が単に最初のものであることを意味します。

例 2: フィールドに文字列が含まれているかどうかを確認します (大文字と小文字は区別されません)。

文字列の後にiを使用して、大文字と小文字を区別せずに一致させることもできます。

たとえば、次のクエリを使用するとします。

 db.teams.findOne({ team : { $regex : /AVS/i }}) 

このクエリは次のドキュメントも返します。

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

例 3: フィールドに文字列が含まれているかどうかを確認します (結果はありません)

フィールドに探している特定の文字列が含まれていない場合は、それに応じて単純にnullを受け取ります。

たとえば、次のクエリを使用するとします。

 db.teams.findOne({ team : { $regex : /ricks/ }})

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

 null

チーム名に文字列「ricks」が含まれるドキュメントはないため、結果としてnullを受け取ります。

: $regexの完全なドキュメントはここで見つけることができます。

追加リソース

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

MongoDB: 特定のフィールドで「not null」を検索する方法
MongoDB: 「Like」正規表現を使用してクエリを実行する方法
MongoDB: コレクションに新しいフィールドを追加する方法
MongoDB: 各ドキュメントからフィールドを削除する方法

コメントを追加する

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