explain(' executionStats')和plain explain()之间有什么区别?

时间:2018-01-05 11:40:12

标签: node.js mongodb

我看到他们返回完全相同的东西,为什么要使用另一个呢?

代码:

const explainQuery = collection.find().sort({last_modified:-1}).limit(1);
const researchQuery = collection.find().sort({last_modified:-1}).limit(1);
const explain = explainQuery.explain('executionStats');
researchQuery.toArray(function(err, data) {
    func(err, data, explain);
})

enter image description here

1 个答案:

答案 0 :(得分:0)

explain接受一个可选参数,它是一个回调函数。您传递的字符串将被忽略,该函数将返回Promise:https://github.com/mongodb/node-mongodb-native/blob/2.2/lib/cursor.js#L1067

似乎值allPlansExecution在驱动程序https://github.com/mongodb/node-mongodb-native/blob/fa0fbc0c4966dfaaf76f35c4de2e80876f53e825/lib/apm.js#L424中是硬编码的。