2013-05-26 5 views
0

Voici mon code:Suppression de tous les documents avec MongoDB natif

var environment = "ClientUnitTests"; 

//set up mongodb 
var Db = require('mongodb').Db, 
    MongoClient = require('mongodb').MongoClient, 
    Server = require('mongodb').Server, 
    ReplSetServers = require('mongodb').ReplSetServers, 
    ObjectID = require('mongodb').ObjectID, 
    Binary = require('mongodb').Binary, 
    GridStore = require('mongodb').GridStore, 
    Grid = require('mongodb').Grid, 
    Code = require('mongodb').Code, 
    BSON = require('mongodb').pure().BSON, 
    assert = require('assert'); 

var db = new Db('test',new Server('localhost',27017),{safe:true}); 
db.open(function(err, db) { 
    assert.equal(null, err); 
}); 
var users = db.collection("users"); 

//Clean up data in test database for clientUnit tests 
if (environment == "ClientUnitTests") { 
    users.remove({},function(err,numberRemoved){ 
     console.log("inside remove call back" + numberRemoved); 
    }); 
} 

Fondamentalement, je suis en train de supprimer toutes les données de mes utilisateurs collection lorsque l'application démarre en mode « ClientUnitTests ». Malheureusement, l'instruction console.log ne se déclenche jamais (également vérifiée en définissant un point d'arrêt qui ne se déclenche jamais). Qu'est-ce que je fais de mal pour retirer tous les documents de cette collection?

Répondre

2

(moment initial)

Le noeud est un environnement asynchrone. Cela signifie que la connexion à la base de données n'est pas ouverte lorsque j'essaie d'appeler remove et aussi la raison pour laquelle le reste de mes requêtes fonctionne (elles arrivent secondes à minutes plus tard plutôt que milisecondes).

Pour être complet est ici un exemple qui utilise la fonction de rappel pour assurer supprimer la base de mon qui se passe variable d'environnement:

db.open(function(err, db) { 
    assert.equal(null, err); 
    if (environment == "ClientUnitTests") { 
     db.collection("users").remove({},function(err,numberRemoved){ 
      console.log("inside remove call back" + numberRemoved); 
     }); 
    } 
}); 
Questions connexes