나는 내가 실행하고있는 MongoDB 쿼리를 가지고 있으며, 필자가 알고있는 레코드를 가져 오지 않는다. 카테고리와 설명 (contains/like 정규 표현식을 통해) 두 가지를 필터링합니다. 카테고리를 기준으로 검색하면 해당 카테고리의 모든 레코드가 되돌아옵니다 (문제 레코드 포함).하지만 설명을 넣으면 그 레코드가 다시 표시되지 않습니다. 설명 텍스트와 일치하는 다른 레코드가 돌아 왔지만 어떤 이유로 든 내가 입력 한 내용에 관계없이이 레코드 하나를 설명 조건으로 되돌릴 수 없습니다. 매우 기괴합니다.MongoDB 쿼리를 어떻게 디버깅합니까?
MongoDB를 사용하여 디버깅하는 방법은 무엇입니까? 내 쿼리는 매우 간단합니다 :
var match = {};
var category = "hardware"
if (category)
match.Category = category;
var searchText = "ceramic"
if (searchText)
{
match.Description = new RegExp("/.*" + searchText + ".*/");
}
collection.find(match).toArray(function(err, items)
{
response.send(items);
});
내가 돌아 오려고하는 항목은 하드웨어 범주에 있으며 검색 텍스트가 ""인 경우 다시 나타납니다. 설명에 "세라믹"이라는 단어가 있지만 searchText가 "세라믹"(또는 설명에있는 다른 단어가 여러 개있을 때) 인 경우 해당 항목은 다시 표시되지 않습니다. "세라믹"이라는 단어를 사용하는 다른 사람들도 설명하지만, 물론 그 항목의 구조는 다른 항목과 다르지 않습니다. 정말 경기를 통과해야합니다.
케이스가 정확합니다 (세라믹이 모두 설명과 필터에서 모두 낮아짐)./i는 검색에서 대/소문자를 구분하지 않도록 노력했습니다.
그럼 어떻게이 쿼리가 매우 명확하게 일치하는 항목을 생성하지 못하는지 알 수 있습니까?
"세라믹"쿼리에서 돌아 오지 않을 다른 문서가 있어야합니다. 해당 문서를 게시물에 추가 할 수 있습니까? – JohnnyHK