我正在使用的脚本在这里:https ://gist.github.com/2759751
我想修改一些代码以将来自 node.js 应用程序的流式解析消息存储到 mongodb 集合以供以后访问。到目前为止,我正在使用教程代码并且对正确使用 db.open() 机制感到困惑,如果我使用 db.open(),并且由于它是一个流,它抱怨它不能多次打开它。如果我删除它,它会说它找不到打开的连接。如何打开一次连接以允许存储流?
我用以下方法实例化 mongo:
mongo = require('mongodb'),
db = new mongo.Db('wikis', new mongo.Server('localhost', 27017, {}), {});
流踢出这样的对象:
return {
flag: flag,
page: page,
pageUrl: pageUrl,
url: m[3],
delta: delta,
comment: m[6],
wikipedia: wikipedia,
wikipediaUrl: wikipediaUrl,
wikipediaShort: config.wikipedias[msg[0]].short,
wikipediaLong: config.wikipedias[msg[0]].long,
user: user,
userUrl: userUrl,
unpatrolled: isUnpatrolled,
anonymous: anonymous,
robot: isRobot,
namespace: namespace,
minor: isMinor
}
我想像这样存储部分流:
function saveRecs(msg){
//db.open(function(){
db.collection('wikiCollection', function(err, collection){
doc = {
"page": msg.page,
"url": msg.url,
"user": msg.user
};
collection.insert(doc, function(){
console.log('Got a record, boss!');
});
});
//});
}