0
현재이 코드를 사용하여 문자열을 기반으로 가능한 첫 번째 '슬러그'를 검색합니다. 재귀 적입니다. 가능한 슬러그를 발견했을 때 멈추었습니다.mongodb 컬렉션에서 빨리 검색하는 방법
function determineProductSlug(name, count, callback){
var nameSlug = name;
if(count > 0){
nameSlug = name + '-' + count;
}
Product.find({'en.nameSlug': nameSlug}).sort({_id: -1}).exec(function(err, product){
if(err){
return callback(err);
}
if(product.length == 0){
return callback(null, nameSlug);
}else{
count = count+1;
return determineProductSlug(name, count, callback);
}
})
}
그러나 매우 느립니다. 우리는 이제 컬렉션에 약 10,000 개의 문서를 저장했습니다. 그러나 더 많은 내용이 포함될 것입니다.
이 기능/쿼리가 더 빠르게 작동하도록하려면 어떻게해야합니까? 나는 재치를 sort({id: -1})
시도했지만 그 도움이되지 않습니다.
그냥'.count()'를 사용하십시오. 실제로는 어떤 문서도 검색하지 않고 단지 커서 카운트를 반환합니다. 실제로 커서 카운트를 반환합니다. 실제로는 실행 및 페치가 아닌 쿼리를 분석 한 것입니다. –
문서는 어떻게 생겼습니까? 그들은 꽤 큰가요? 데이터베이스에 대한 관리자 액세스 권한이 있으며 인덱스를 만들 수 있습니까? –
@ A.P. 그것이 나를 도왔 때문에 대답으로 게시하시기 바랍니다 :) – NVO