Mongodb: 「like」正規表現を使用してクエリを実行する方法
次のメソッドを使用して、「同様の」正規表現を使用して MongoDB にクエリを実行できます。
方法 1: 文字列を含むドキュメントを検索する
db.collection.find({ name : { $regex : /string/i }})
i は大文字と小文字を区別しない一致を示すことに注意してください。
方法 2: 文字列で始まるドキュメントを検索する
db.collection.find({ name : { $regex : /^string/i }})
方法 3: 文字列で終わるドキュメントを検索する
db.collection.find({ name : { $regex : /string$/i }})
次の例は、次の文書を使用して収集チームで各方法を使用する方法を示しています。
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.find({ team : { $regex : /avs/i }})
このクエリは、次の 2 つのドキュメントを返します。
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("618285361a42e92ac9ccd2c6"), team: 'Cavs', position: 'Guard', points: 33 }
例 2: 文字列で始まるドキュメントを検索する
次のコードを使用して、位置フィールドの文字列「gua」で始まるすべてのドキュメントを検索できます。
db.teams.find({ position : { $regex : /^gua/i }})
このクエリは、次の 3 つのドキュメントを返します。
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("6180504e8ffcfe76d07b1da7"), team: 'Spurs', position: 'Guard', points: 22 } { _id: ObjectId("618285361a42e92ac9ccd2c6"), team: 'Cavs', position: 'Guard', points: 33 }
例 3: 文字列で終わるドキュメントを検索する
次のコードを使用すると、位置フィールドの文字列「ward」で終わるすべてのドキュメントを検索できます。
db.teams.find({ position : { $regex : /ward$/i }})
このクエリは次のドキュメントを返します。
{ _id: ObjectId("618050808ffcfe76d07b1dab"), team: 'Warriors', position: 'Forward', points: 26 }
注: $regexの完全なドキュメントはここで見つけることができます。