我正在使用带有Twitter REST API的MeteorJS。我正在尝试做的是检索一堆带有特定哈希标记的推文。我能够检索推文,但我的问题是为什么我一直在检索相同的推文?
我正在搜索的主题标签相对受欢迎,所以每次重启MeteorJS时,我都希望有一堆随机推文。不确定为什么会发生这种情况,但我的猜测是,因为我要求相同的主题标签w /相同的身份验证信息,Twitter只是检索一组特定的推文而不是每次都检索具有特定主题标签的不同推文重启流星。
不确定这是不是正在发生的事情,但这是我的教育猜测。如果这是正在发生的事情,有什么方法可以解决这个问题,以便每次使用特定的哈希标记检索随机推文吗?
这是我的代码。忘了会有所帮助。
if (Meteor.isServer) {
Meteor.startup(function () {
if (Tweets.find().count()==0) {
var Twit = Meteor.npmRequire('twit');
var T = new Twit({
consumer_key: '', // API key
consumer_secret: '', // API secret
access_token: '',
access_token_secret: ''
});
var Tget = Meteor.wrapAsync(T.get,T);
var result = Tget('search/tweets', {q:'#UCLA',count:10});
for (var i = 0; i < 10; i++) {
var temp = [
{'title':result.statuses[i].user.name,'handle':result.statuses[i].user.screen_name,'picture':result.statuses[i].user.profile_image_url,'tweet':result.statuses[i].text}];
Tweets.insert(temp[0]);
}
}
});
}
Tweets是我在客户端和服务器代码之外创建的集合:
Tweets = new Mongo.Collection("tweets");
答案 0 :(得分:0)
您的MongoDB应该保留,因此您必须在
之外执行Tweets.remove({})
if (Tweets.find().count()==0) {
阻止或删除条件。
另外,请考虑使用upsert
,这样您就不必每次都清除整个数据库。 (ref)
答案 1 :(得分:0)
首次运行时你的推文收集是空的,你进入
if (Tweets.find().count()==0) {
然后你插入你的帖子/推文而不会再次进入它......正如@FullStack所说:你MongoDB仍然存在。 ; - )
答案 2 :(得分:0)
把它扔到那里。也许你得到相同的结果,因为你正在进行相同的搜索。
每次都将结果保存到数据库中吗?您确定要排除以前的结果吗?
您应该能够添加一个参数来告诉搜索返回仅在一定时间后发生的推文。