我期待学习node.js和mongodb,它们看起来适合我想要做的事情。作为一个帮助我学习的小项目,我认为我需要从phpbb3论坛复制“posts”表到mongodb表中,所以我做了类似这样的事情,其中db是mongodb数据库连接,client是mysql数据库连接。通过node.js中的数据库记录进行迭代
db.collection('posts', function (err, data) {
client.query('select * from phpbb_posts", function(err, rs) {
data.insert(rs);
});
该工程确定,当我做小表,但我的职位表中有10多万行,当我离开它运行了一个小时该查询甚至不回来。我怀疑它试图将整个数据库表加载到内存中,然后插入它。
所以我想要做的是一次读一大块行并插入它们。然而,我看不到如何读取node.js中的行的子集,甚至更多的问题,我无法理解如何通过回调获取通知时,我可以一次遍历查询它已完成。
任何想法如何我最好做到这一点? (我正在寻找使用node.js的解决方案,因为我想知道如何解决这类问题,我毫无疑问可以用其他方式轻松完成)
两个问题:1.你的“选择”是否是一个错字?我看到一个单引号和一个双引号。 2.当你做限制10时会发生什么?或限制1?这个过程是否至少适用于小数据集? – 2011-03-03 22:09:48
对不起,我稍微简化了查询并发布了错字。我可以做一个10或甚至1000的限制,这工作正常。但之后它变得越来越慢。 – jcoder 2011-03-03 22:36:12