ホームページ >データベース >mysql チュートリアル >MongoDB で SQL の LIKE 演算子をシミュレートするにはどうすればよいですか?
MongoDB で SQL の LIKE 機能を複製する
SQL の LIKE
演算子は、パターンベースの検索を簡素化します。 たとえば、名前に「m」を含むすべてのユーザーを検索するのは簡単です:
<code class="language-sql">SELECT * FROM users WHERE name LIKE '%m%';</code>
MongoDB には、直接の LIKE
に相当するものが存在せず、同様の機能に正規表現を利用します。 上記の SQL クエリに相当する MongoDB は次のとおりです:
<code class="language-javascript">db.users.find({ name: /.*m.*/ });</code>
これは正規表現 /.*m.*/
を使用して、name
フィールドに文字列内の任意の場所に「m」が含まれるドキュメントを検索します。 .
は任意の文字に一致し、*
は 0 個以上の文字に一致し、m
は検索するリテラル文字です。
より単純ですが、正確さは劣りますが、次のような代替案があります。
<code class="language-javascript">db.users.find({ name: /m/ });</code>
これにより、少なくとも 1 つの「m」を含む name
フィールドが検索されます。
MongoDB の正規表現機能は、柔軟性の点で SQL の LIKE
演算子を上回り、より複雑なパターン マッチングが可能になります。 MongoDB の正規表現の包括的な詳細については、公式の MongoDB ドキュメント および 正規表現に関する MDN Web ドキュメントを参照してください。 (https://www.php.cn/link/f84f4800d13741a98ddf9bc46e58355c
と https://www.php.cn/link/a93dddc1fd67c3a6409fafb5801d7d50
を実際のリンクに置き換えてください。)
以上がMongoDB で SQL の LIKE 演算子をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。