[MONGODB] pymongo와 정규식 쿼리 수행
MONGODBpymongo와 정규식 쿼리 수행
나는 MongoDB를 서버에 대해 pymongo를 사용하여 정규식 쿼리를 수행하려합니다. 다음 문서 구조는
{
"files": [
"File 1",
"File 2",
"File 3",
"File 4"
],
"rootFolder": "/Location/Of/Files"
}
나는 패턴 * 파일과 일치하는 모든 파일을 싶어. 나는 같은이 일을 시도
db.collectionName.find({'files':'/^File/'})
그러나 나는, 아무것도 다시 얻을 MongoDB를 워드 프로세서에 따라이 가능해야하기 때문에 내가 뭔가를 놓친 거지. 나는 그것이 벌금을 작동 몽고 콘솔에서 쿼리를 수행하는 경우, 이것은 API를 나던 지원에게 그런 뜻이 아니면 내가 그냥 잘못을 사용하고 있습니다 않습니다
해결법
-
==============================
1.(예 :이 같은 경우를 무시) 정규 표현식 옵션을 포함 할 경우,이 시도 :
(예 :이 같은 경우를 무시) 정규 표현식 옵션을 포함 할 경우,이 시도 :
import re regx = re.compile("^foo", re.IGNORECASE) db.users.find_one({"files": regx})
-
==============================
2.정규식 검색을 끈다는 pymongo에서 약간 다르게 수행하지만, 그냥 쉽게된다.
정규식 검색을 끈다는 pymongo에서 약간 다르게 수행하지만, 그냥 쉽게된다.
다음과 같이 정규식이 수행됩니다
db.collectionname.find({'files':{'$regex':'^File'}})
이 파일과 그 시작 내의 항목이있는 파일 속성이있는 모든 문서를 일치합니다
-
==============================
3.이중 컴파일을 방지하기 위해 당신은 PyMongo와 함께 제공되는 bson 정규식 래퍼를 사용할 수 있습니다 :
이중 컴파일을 방지하기 위해 당신은 PyMongo와 함께 제공되는 bson 정규식 래퍼를 사용할 수 있습니다 :
>>> regx = bson.regex.Regex('^foo') >>> db.users.find_one({"files": regx})
정규식은 find_one이 후 '정규 표현식'형식으로 인수를 감지하고 적절한 몽고 쿼리를 형성 할 수 있도록, 컴파일을 시도하지 않고 문자열을 저장합니다.
나는이 방법은 약간 더 예컨대 다른 최고 응답보다 파이썬 느낌 :
>>> db.collectionname.find({'files':{'$regex':'^File'}})
당신은 몇 가지주의가 있기 때문에 정규식 쿼리를 사용하려는 경우 bson 정규식 문서에 독서 그것의 가치.
-
==============================
4.다시의 해결책은 전혀 인덱스를 사용하지 않습니다. 당신은 명령을 같이 사용한다 :
다시의 해결책은 전혀 인덱스를 사용하지 않습니다. 당신은 명령을 같이 사용한다 :
db.collectionname.find ({ '파일'{ '$ 정규식': '^ 파일'}})
(내가 여기에 응답 그래서 나는 그들의 답변 아래에 언급 할 수)
-
==============================
5.
import re def get_pattern_query(pattern,starting_with=False,ending_with=False,ignore_case=False): start = '^' if starting_with else '.*' end = '$' if ending_with else '.*' pattern = start + re.escape(pattern) + end return re.compile(pattern, re.IGNORECASE) if ignore_case else re.compile(pattern)
핸들 모든 문자를 컴파일하기 전에 패턴을 탈출.
from https://stackoverflow.com/questions/3483318/performing-regex-queries-with-pymongo by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 고정 표시기-작성을 사용하여 몽고 데이터베이스를 씨앗합니까? (0) | 2019.12.03 |
---|---|
[MONGODB] MongoDB를 데이터베이스에 저장 이미지 (0) | 2019.12.03 |
[MONGODB] CSV 가져 오기에 mongoimport를 사용하는 방법 (0) | 2019.12.03 |
[MONGODB] MySQL은 MongoDB의 대 (1000)는 읽기 (0) | 2019.12.03 |
[MONGODB] 때 MongoDB를 또는 다른 문서 지향 데이터베이스 시스템을 사용 하는가? [닫은] (0) | 2019.12.03 |