Go ドライバーを使用した MongoDB の正規表現クエリ
MongoDB は、さまざまな条件に基づいてドキュメントを取得できる強力なクエリ メカニズムを提供します。これらの基準の 1 つは正規表現で、パターン マッチングや部分文字列検索によく使用されます。
問題が発生しました:
MongoDB Go ドライバーを使用して実行しようとしたとき正規表現クエリで、予期した結果が返されないという問題が発生しました。ドキュメントの例に従っているにもかかわらず、カーソルは空のままでした。
根本原因:
この問題の根本原因は、primitive.Regex 構造体の構築にあります。この構造体の Pattern フィールドには、先頭と末尾のスラッシュのない正規表現パターンが必要です。
解決策:
この問題を解決するには、正規表現パターンを囲んでいるスラッシュを削除します。 primitive.Regex 構造体内。修正されたコードは次のとおりです:
<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>
例:
この修正されたコードを使用すると、次のクエリは期待どおりの結果を返すようになります:
<code class="go">ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() cur, err := coll.Find(ctx, filter) if err != nil { fmt.Println(err) return } i := 0 for cur.Next(ctx) { i = i + 1 } fmt.Println("Found", i, "elements")</code>
正規表現パターンを囲むスラッシュを削除することにより、primitive.Regex 構造体は、ドキュメントの「テキスト」フィールドを検索し、期待される結果を返します。
以上がMongoDB Go Driver 正規表現クエリが結果を返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。