2013-03-14 136 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); 
}); 
相关问题