2015-05-21 162 views
0

正是1000唯一帳戶我的帳戶模型,這個模式創建與貓鼬

var schema = new mongoose.Schema({ 
    username: { 
    type: String, 
    unique: true, 
    index: true 
    }, 
}); 

var Account = mongoose.model("Account", schema); 

,並在我的app.js我有這樣的代碼

for(var i = 0; i < 1000; i++) { 
    var account = new Account({username: random()}); 
} 

random()可能會產生重複的值,因爲用戶名是唯一它不會保存,所以我可以創建1000個帳戶?

我嘗試一些方法,如之前儲蓄帳戶檢查random()值存在於數據庫中,如果存在,創建新的rescusivly而是因爲貓鼬是異步的。如果你在Mongoose's home page看看他們,這是不能很好的工作

回答

1

下面這個例子:

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var Cat = mongoose.model('Cat', { name: String }); 

var kitty = new Cat({ name: 'Zildjian' }); 
kitty.save(function (err) { 
    if (err) // ... 
    console.log('meow'); 
}); 

當你保存kitty,你可以在回調,這將告訴你,如果它成功或無法通過。所以,如果失敗,你可以再試一次(推測用不同的用戶名)。在你的例子中,你可以做這樣的事情:

for(var i = 0; i < 1000; i++) { 
    createAccount(); 
} 

function createAccount() { 
    var account = new Account({username: random()}); 
    account.save(function(err) { 
     if (err) 
      createAccount(); //try again 
    }); 
}