在MongoDB: The Definitive Guide, 3rd Edition - 2. Getting Started - Using the MongoDB Shell - Creating a .mongorc.js中,有下面这么一段:
More practically, you can use this script to set up any global variables you’d like to use, alias long names to shorter ones, and override built-in functions. One of the most common uses for .mongorc.js is remove some of the more “dangerous” shell helpers. You can override functions like
dropDatabase
ordeleteIndexes
with no-ops or undefine them altogether:db.dropDatabase = DB.prototype.dropDatabase = no;
Make sure that, if you change any database functions, you do so on both the db variable and the DB prototype (as shown in the example above). If you change only one, either the db variable won’t see the change or all new databases you use (when you run use anotherDB) won’t see your change.
db.dropDatabase 是来源于 DB.prototype.dropDatabase 的,设置了 DB.prototype.dropDatabase 为 no,为什么还要设置 db.dropDatabase 呢?我自己做了实验,只需要“设置 DB.prototype.dropDatabase 为 no”就可以了,是还有其它我不知道的东西吗?