Go 드라이버를 사용하여 MongoDB의 정규식 쿼리
MongoDB는 다양한 기준에 따라 문서를 검색할 수 있는 강력한 쿼리 메커니즘을 제공합니다. 이러한 기준 중 하나는 패턴 일치 및 하위 문자열 검색에 자주 사용되는 정규 표현식입니다.
발생한 문제:
MongoDB Go 드라이버를 사용하여 수행하려고 할 때 정규식 쿼리를 수행하는 동안 예상한 결과가 반환되지 않는 문제가 사용자에게 발생했습니다. 문서의 예를 따랐음에도 불구하고 커서는 비어 있었습니다.
근본 원인:
이 문제의 근본 원인은 원시.Regex 구조체의 구성에 있습니다. 이 구조체의 패턴 필드에는 앞뒤 슬래시가 없는 정규식 패턴이 필요합니다.
해결책:
이 문제를 해결하려면 정규식 패턴 주변의 슬래시를 제거하세요. 원시적.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>
정규식 패턴 주위의 슬래시를 제거함으로써 이제 원시.Regex 구조체는 문서의 "텍스트" 필드에서 원하는 하위 문자열과 정확하게 일치하고 예상한 결과를 반환할 수 있습니다.
위 내용은 MongoDB Go Driver 정규식 쿼리가 결과를 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!