Go ドライバーを使用して MongoDB で正規表現部分文字列クエリを実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-04 01:39:29
オリジナル
706 人が閲覧しました

How to Perform Regex Substring Queries in MongoDB with the Go Driver?

MongoDB-Go-Driver の正規表現部分文字列クエリ

正規表現部分文字列クエリは、MongoDB で複雑なテキスト検索を実行するために不可欠です。 mongo シェルは正規表現パターンを使用してクエリを実行する簡単な方法を提供しますが、公式の Go mongo ドライバーを使用してこの機能を複製するのは困難な場合があります。

問題の概要

開発者mongo-go-driver で正規表現部分文字列クエリを使用してエントリを取得する際に問題が発生しました。文書化された例に従っているにもかかわらず、コードは結果を返せませんでした。

原因

さらに調査したところ、問題は、プリミティブ.正規表現構造体。元のコードでは、パターンにスラッシュ (/) が含まれていましたが、これは Go mongo ドライバーでの使用には必要ありません。

解決策

この問題を解決するには、次のようにします。 primitive.Regex の Pattern フィールドには、スラッシュを含まない正規表現パターン自体のみを含める必要があります。例:

<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>
ログイン後にコピー

この変更により、Go mongo ドライバーが正規表現パターンを正しく解釈し、部分文字列クエリを正常に実行できるようになります。

期待される結果

修正されたコードを使用すると、クエリはコレクションから 2 つのドキュメントを返すはずです:

{
    "_id" : ObjectId("5c9cc7e9950198ceeefecbdd"),
    "text" : "hello world"
},
{
    "_id" : ObjectId("5c9cc7f6950198ceeefecbec"),
    "text" : "hello"
}
ログイン後にコピー

これらのドキュメントには、クエリで指定された正規表現パターンと一致する「he」の部分文字列が「text」フィールドに含まれています。

以上がGo ドライバーを使用して MongoDB で正規表現部分文字列クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート