考慮我們正在根據_id值從MongoDB中搜索文檔。以下哪個代碼是有效的?Mongoose中的Model.findOne()&Model.findById()有什麼區別?
ModelObj.findById(IdValue).exec(callback);
ModelObj.findOne({ '_id': IdValue}).exec(callback);
我覺得ModelObj.findById()是有效率的,但是是什麼原因支持或者它是如何有效?
考慮我們正在根據_id值從MongoDB中搜索文檔。以下哪個代碼是有效的?Mongoose中的Model.findOne()&Model.findById()有什麼區別?
ModelObj.findById(IdValue).exec(callback);
ModelObj.findOne({ '_id': IdValue}).exec(callback);
我覺得ModelObj.findById()是有效率的,但是是什麼原因支持或者它是如何有效?
findById
只是一個方便的功能,它的功能與您撥打電話findOne
完全相同。
這裏的the source:
Model.findById = function findById (id, fields, options, callback) {
return this.findOne({ _id: id }, fields, options, callback);
};
使用.findOne使數據庫查看其記錄,檢查每個bson文檔以查找相關變量,然後檢查該值,如果mongo知道它正在查找內部索引的_id字段,則不必查看每個文檔
正如指出的JohnnyHK,它的引擎蓋下 –
完全相同的事這是因爲你的答案一樣簡單。很高興得到這個答案。謝謝你.. –