在调用db。<collection>时使用MongoDB的隐式集合访问

时间:2015-12-26 06:56:27

标签: javascript mongodb mongo-shell

在MongoDB中,当我们访问db对象的集合时,如果集合未定义,它会隐式调用DB.prototype中定义的getCollection函数。

我无法弄清楚Mongo shell源中发生此调用的位置:https://github.com/mongodb/mongo/tree/master/src/mongo/shell

这是如何运作的?

1 个答案:

答案 0 :(得分:1)

与MongoDB 3.4一样,mongo shell与作为MongoDB服务器代码库一部分的脚本引擎API集成。通过覆盖getProperty对象的db方法来实现默认集合行为:src/mongo/scripting/mozjz/db.cpp

我不相信在纯JavaScript中进行这种自动加载有相同的方法,因为唯一可用的默认JavaScript方法是类构造函数。