2017-12-26 17 views
0

중첩 된 json 데이터가있는 문서가 있습니다. 15 개의 텍스트 및 10 개의 정수 데이터 유형이 있습니다.mongodb 또는 pymongo를 사용하여 부분 일치 텍스트를 검색하는 방법

일치하는 텍스트 나 정수를 표시하는 방법은 무엇입니까?

다음 쿼리를 시도했지만 예상대로 작동하지 않았습니다.

db.customers.find({ sno : /ab/ },{ name : /ab/ }).count() 

결과로 0 점이 표시됩니다. 나는 OR 절이 아닌 AND 절을보고 있습니다.

당신은 $or 문 내에서 모든 필드를 지정할 수

답변

1

:

db.collection.createIndex({ "$**": "text" }) 

다음 쿼리 :이 당신은 텍스트 인덱스를 만들어야 위해,

db.customers.find({$or: [ 
    {field1: /ab/ }, 
    {field2: /ab/ }, 
    {field3: /ab/ }, 
    {field4: /ab/ }, 
    {field5: /ab/ } 
]}).count() 

당신은 또한 텍스트 쿼리를 사용할 수 있습니다 그것은 사용 :

db.articles.find({ $text: { $search: "ab" } }) 

텍스트 쿼리를 - https://docs.mongodb.com/manual/reference/operator/query/text/ 텍스트 인덱스 - https://docs.mongodb.com/manual/core/index-text/

+0

감사합니다. Kevin님께 고맙습니다. pymongo에서이 쿼리를 어떻게 변환 할 수 있습니까? 따옴표와 큰 따옴표를 사방에 추가하려했지만 올바른 응답을 얻지 못했습니다. – jason

+0

정규식을 만들어야합니다.이 답변을 참조하십시오 : https : //stackoverflow.com/a/4877662/4079967 –