【发布时间】:2018-06-27 15:00:06
【问题描述】:
所以我想使用 Mongoose 将来自 Twitter Streaming API 的数据流保存在 MongoDB 中。不知何故,它不会保存所有数据,并且当我运行我的代码时,它只会从流中无限量的数据(不完整)中保存 1 个文档:
var mongoose = require('mongoose'),
TwitterStream = require('twitter-stream-api'),
fs = require('fs');
mongoose.connect('mongodb://localhost/insert_sample');
var keys = {
consumer_key : "",
consumer_secret : "",
token : "",
token_secret : ""
};
var Schema = mongoose.Schema;
// create a schema
var userSchema = new Schema({}, {"strict": false});
// the schema is useless so far
// we need to create a model using it
var User = mongoose.model('User', userSchema);
// make this available to our users in our Node applications
module.exports = User;
var Twitter = new TwitterStream(keys, false);
Twitter.stream('statuses/filter', {
track: 'travel'
});
// create a new user called twitter
var Twitter = new User();
// call the built-in save method to save to the database
Twitter.save(function(err) {
if (err) throw err;
console.log('User saved successfully!');
});
命令行输出:User saved successfully!
当我尝试在 MongoDB shell 中使用 db.users.find() 进行查询时,结果如下:
{ "_id" : ObjectId("5a60a5558f4f1d21bcadd72b"), "__v" : 0 }
什么时候应该是这样的:
{
"created_at": "Fri Aug 04 05:42:03 +0000 2017",
"id": 893346273255866400,
"id_str": "893346273255866368",
..........and soooo many more attributes }
编辑!!!抱歉,我不小心按了 Enter 并发布了它,而没有其他需要清楚的东西。我的错。
【问题讨论】:
标签: javascript node.js mongodb twitter stream