Я использую следующее, когда вы запрашиваете мой mongoDB как участник простого api.Избегайте ошибки времени в mongo/node
function queryDB(db,path,request,response){
var collection = db.collection('workingCaseDB');
collection.findOne({name:query}, function (err,result) {
if(err)
sendError(db,err,request,response);
else
displayResults(db,result,request,response);
});
}
Если результат не найден, подождите, а затем выдаст ошибку таймаута. Что я могу сделать, чтобы сделать это более неудачным, если в базе данных нет результата? А именно, всякий раз, когда результат найден, запрос принимает < 3 секунды, но там, где результат не найден, он занимает 10 секунд или доходит до таймаута и выдает ошибку. Как я могу сократить это до 3 секунд.
Ничего не найдено, так как db должен проверить всю коллекцию, и кажется, что это занимает 10 секунд. 'findOne' вернет вам первое совпадение, если первое совпадение найдено в верхних 30% проверяемых данных, оно займет <= 3 секунды. Если он будет найден в нижней части 30% данных, которые нужно проверить, он займет> 6 секунд. Возможно, вам придется посмотреть на создание разумного индекса для вашего запроса, чтобы ускорить работу. – pintxo
Что бы вы ни использовали в своем запросе, попробуйте правильно его проиндексировать, а затем он будет летать ... – abeyaz