在Meteor中将数千行插入集合的最佳方法是什么?
当我在循环中插入时,我可以在页面上看到由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 :(得分:1)
Meteor没有默认功能来执行批量插入,因此您的自动运行将触发每个插入操作
这是一个启用批量加载的软件包 - mikowals:batch-insert
答案 1 :(得分:0)
如果您不想让每个用户始终将所有内容发布到数据库,您可以从项目meteor remove autopublish
中删除自动发布包,如果您还没有。这样,您可以限制流星魔法发生,直到您插入所有行。完成插入后,您可以在整个集合中使用meteor.publish
将其“推送”给所有用户。
不完全确定这是否是您的想法,希望它有所帮助
答案 2 :(得分:0)