Lendo Mongo: guia definitivo :
No primeiro capítulo, o autor menciona o seguinte trecho para alterar alguns dos comandos padrão do db
:
var no = function() {
print("Not on my watch.");
};
// Prevent dropping databases
db.dropDatabase = DB.prototype.dropDatabase = no;
// Prevent dropping collections
DBCollection.prototype.drop = no;
// Prevent dropping an index
DBCollection.prototype.dropIndex = no;
// Prevent dropping indexes
DBCollection.prototype.dropIndexes = no;
Eu sei db
que está apontando para o banco de dados atual, mas minha pergunta é de onde DB
vem?
Isso se refere ao shell mongo legado que foi obsoleto no MongoDB v5.0 e foi substituído por mongosh . Não há
DB
namongosh
casca.Se você estiver usando uma versão mais antiga do MongoDB e tiver o
mongo
shell instalado, entãoDB
é uma variável global que resolve uma função com propriedades definidas pela Expressão de Função Imediatamente Invocada (IIFE) como parte dadb.js
execução.Também é
DB.prototype.dropDatabase
uma função, portanto, ao executar,db.dropDatabase = DB.prototype.dropDatabase = no;
você está se referindo àdropDatabase
função que agora está apontando para suano
função.