В чем разница между Model.findOne() и Model.findById() в Mongoose?
Рассмотрим, что мы ищем документ из MongoDB на основе значения _id. Какой из следующих кодов эффективен?
Я чувствую, что ModelObj.findById() эффективен, но каковы благоприятные причины или как это эффективно?
Ответы
Ответ 1
findById
- это просто удобная функция, которая делает то же самое, что и вызов findOne
, который вы показываете.
Здесь источник:
Model.findById = function findById (id, fields, options, callback) {
return this.findOne({ _id: id }, fields, options, callback);
};
Ответ 2
Использование .findOne заставляет базу данных просматривать свои записи, проверяя каждый документ bson, чтобы найти соответствующую переменную, а затем проверить значение, если mongo знает, что он ищет внутренне проиндексированное поле _id, ему не нужно просматривать каждый документ