2013-03-14 103 views
19

我知道在最新版本的Mongoose中,您可以將多個文檔傳遞給create方法,或者在我的情況下更好地傳遞一組文檔。Mongoose創建多個文檔

var array = [{ type: 'jelly bean' }, { type: 'snickers' }]; 
Candy.create(array, function (err, jellybean, snickers) { 
    if (err) // ... 
}); 

我的問題是,數組的大小是動態的,所以在回調將是有幫助創建的對象的數組。

var array = [{ type: 'jelly bean' }, { type: 'snickers' }, ..... {type: 'N candie'}]; 
Candy.create(array, function (err, candies) { 
    if (err) // ... 

    candies.forEach(function(candy) { 
     // do some stuff with candies 
    }); 
}); 

不是在文檔中,但是是這樣的可能嗎?

回答

30

您可以通過arguments訪問您的回調參數的變量列表。所以,你可以這樣做:

Candy.create(array, function (err) { 
    if (err) // ... 

    for (var i=1; i<arguments.length; ++i) { 
     var candy = arguments[i]; 
     // do some stuff with candy 
    } 
}); 
+0

哈哈,忘了所有關於這一點。非常感謝。 – lostintranslation 2013-03-14 13:38:46

11

this ticket GitHub上,貓鼬3.9和4.0將你,如果你使用create()時提供一個傳播提供一個數組和參數傳播返回數組。

0

通過收集分貝的插入功能, 例如:

Model.collection.insert(array, function(err, list) { 
    if (err) { 
     throw err; 
    } 

    console.log("\nlist:", list); 
}); 
相關問題