2012-10-11 4 views
3

je voudrais remplir mon mongo avec des données de test.nodejs mongo, générer des données de test

J'ai défini des modèles de mangouste et j'errait s'il était possible de créer des documents pragmatiquement mongo en utilisant des modèles pré définis.

Par exemple, les objets du modèle

var Schema = mongoose.Schema; 

var Items = new Schema({ 
    title:  { type: String, required: true }, 
    desc:  { type: String} 
}); 

Répondre

2

Bien sûr, faites-le dans une application de nœud à usage unique. Créer une nouvelle application qui n'utilise pas expressément ou tout framework web, mais simplement a la définition de votre modèle et une connexion à votre base de données.

Vous aurez besoin d'une source bien sûr de données pour les données de test, que vous pouvez simplement utiliser un générateur de mot au hasard, comme celui-ci: http://james.padolsey.com/javascript/random-word-generator/

function createRandomWord(length) { 
    var consonants = 'bcdfghjklmnpqrstvwxyz', 
     vowels = 'aeiou', 
     rand = function(limit) { 
      return Math.floor(Math.random()*limit); 
     }, 
     i, word='', length = parseInt(length,10), 
     consonants = consonants.split(''), 
     vowels = vowels.split(''); 
    for (i=0;i<length/2;i++) { 
     var randConsonant = consonants[rand(consonants.length)], 
      randVowel = vowels[rand(vowels.length)]; 
     word += (i===0) ? randConsonant.toUpperCase() : randConsonant; 
     word += i*2<length-1 ? randVowel : ''; 
    } 
    return word; 
} 

Ensuite, vous aurez besoin pour remplir la base de données comme ceci:

var numTestDocs = 100; // or however many you want 
for(var i = 0; i < numTestDocs; i++) { 
    var someLength = 12; // Alternatively, you could use a random number generator 
    var randomWord = createRandomWord(someLength); 
    var item = new Item ({ 
     title : randomWord , 
     desc : randomWord + ' is just a test' 
    }); 
    item.save(function(err, doc) { 
     // do error handling if you want to 
     console.log('Test Record Saved with id: ' + doc._id); 
    }); 
} 

courir Ensuite, il suffit que l'application de noeud.

Questions connexes