Bem-vindo ao estilo assíncrono:
- Você não deve usar throw para retorno de chamada, throw é bom para pilha de funções
db.close()
deve estar no retorno de chamada, após a remoção.
Exemplo:
MongoClient.connect('mongodb://localhost/mochatests', function(err, db) {
db.collection('contacts', {}, function(err, contacts) {
contacts.remove({_id: ObjectID("52b2f757b8116e1df2eb46ac")}, function(err, result) {
if (err) {
console.log(err);
}
console.log(result);
db.close();
});
});
});