使用NodeJS将数据流保存到MongoDB

时间:2018-01-18 10:47:07

标签: node.js mongodb twitter stream

我设法从Twitter Streaming API流式传输推文,我想知道如何在MongoDB的我的集合中自动插入它?这是我到目前为止的代码。它只将它存储在一个JS文件中,但我想将它自动插入到我的集合中。

var TwitterStream = require('twitter-stream-api'),
fs = require('fs');

var keys = {
consumer_key : "xxxx",
consumer_secret : "xxxx",
token : "xxxx",
token_secret : "xxxx"
};

var Twitter = new TwitterStream(keys, false);
Twitter.stream('statuses/filter', {
track: 'travel'
});

Twitter.pipe(fs.createWriteStream('final_tweets_asd.json'));

更新

我已经阅读了类似于我的问题并更新了我的代码推文通过nodejs插入mongodb。这就是我所做的:

var Twitter = new TwitterStream(keys, false);
Twitter.stream('statuses/filter', {
track: 'travel'
}, function (stream) {
stream.on('data', function (data) {
console.log(data);
console.log("\n\n\n\n");
db.tweets.findAndModify({
    query: {'id': 'data.id'},
    update: { $set: data},
    upsert: true,
    new: true
})
});
});

代码运行但它不会将其存储在MongoDB中。我也对解决方案感到困惑。根据我的记忆,您需要指定能够插入的数据库名称和集合名称。 “db.tweets.findAndModify”仅提供数据库名称。

0 个答案:

没有答案