2015-07-10 51 views
0

将数千行插入流星集合中的最佳方式是什么?在流星中插入数以千计的文档

当我在一个循环中插入时,我可以在页面上看到文档数量由于Collection.find().count()而被动地更新。在循环结束并插入所有文档之前,我不知道文档的数量。在MongoDB中插入大量数据时有没有什么好的做法需要记住?

编辑

当我使用

createFolders: function() { 
    var folders = []; 

    for (var i = 0; i < 10000; i++) { 
    folders.push({ name: i }); 
    } 

    Folders.batchInsert(folders); 
}, 

的文档插入,但服务器说RangeError: Out of memory并重新启动。

+0

多少,我们谈论的? 〜 – Pogrindis

+0

访问底层节点驱动程序并使用[“Bulk”](http://docs.mongodb.org/manual/reference/method/Bulk/)操作。没有一个abtract驱动程序以这种方式进行了优化。 –

+0

@Pogrindis“千”当然! –

回答

0

如果您不希望每个用户都将所有内容发布到数据库,您可以从项目meteor remove autopublish中删除自动发布软件包(如果您还没有的话)。这样,你可以限制流星魔法的发生,直到你插入了所有的行。插入完成后,您可以在整个集合上使用meteor.publish将其“推送”给所有用户。

不能完全确定这是否是你所想,希望它有助于

1

流星没有一个默认功能做批量插入使你的自动运行将触发每个插入操作

这是一个包,能批量加载 - mikowals:批量插入

+0

我收到一个内存问题。我编辑了我的问题 – Jamgreen