2012-10-11 141 views
3

我想用我的一些测试数据填充我的mongo。nodejs mongo,生成测试数据

我已经定义了猫鼬模型,并且如果可以使用预先定义的模型实用地创建mongo文档,我就会徘徊。

例如,模型项目

var Schema = mongoose.Schema; 

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

回答

2

当然,做一个单一目的节点的应用程序。创建一个不使用快速或任何Web框架的新应用程序,而只需创建模型定义并连接到数据库。

你当然需要测试数据,你可以只使用一个随机单词生成一个数据源,像这样的: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; 
} 

然后,你需要填充如数据库这个:

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); 
    }); 
} 

然后只运行该节点的应用程序。