使用匹配给定标签的推文维护 mongodb
Maintaining a mongodb with tweets that match a given tag
我必须保留 mongodb 与匹配给定标签的推文。另外,我必须用推文的最新数据更新它。我需要将索引创建为 'id_str'。
当我 运行 这段代码时出现异常,不知道为什么。只是我知道 'for'.
有问题
def getSearchTagTwitter(tag):
db = connexMongoDB()
t = loginTwython2()
search = t.search(q=tag, count=100)
data = search['statuses']
try:
for tweet in data:
db.twittersearch.ensureIndex(tweet['id_str'])
db.twittersearch.update(tweet)
except Exception:
print "Error tag"
time.sleep(60*15)
getSearchTagTwitter(tag)
我认为错误是由 ensureIndex
引起的,因为语法看起来不太正确。正确的语法是:
db.twittersearch.ensureIndex('id_str')
也不需要在for循环的每次迭代中都创建索引,只需要声明一次,它就会自动更新。请注意 ensureIndex
现已弃用,您应该改用 create_index
。
此外,您的 update
语句看起来也不正确,应该如下所示:
db.twittersearch.update_one({"id_str":"12344"}, tweet, upsert=True)
我必须保留 mongodb 与匹配给定标签的推文。另外,我必须用推文的最新数据更新它。我需要将索引创建为 'id_str'。 当我 运行 这段代码时出现异常,不知道为什么。只是我知道 'for'.
有问题def getSearchTagTwitter(tag):
db = connexMongoDB()
t = loginTwython2()
search = t.search(q=tag, count=100)
data = search['statuses']
try:
for tweet in data:
db.twittersearch.ensureIndex(tweet['id_str'])
db.twittersearch.update(tweet)
except Exception:
print "Error tag"
time.sleep(60*15)
getSearchTagTwitter(tag)
我认为错误是由 ensureIndex
引起的,因为语法看起来不太正确。正确的语法是:
db.twittersearch.ensureIndex('id_str')
也不需要在for循环的每次迭代中都创建索引,只需要声明一次,它就会自动更新。请注意 ensureIndex
现已弃用,您应该改用 create_index
。
此外,您的 update
语句看起来也不正确,应该如下所示:
db.twittersearch.update_one({"id_str":"12344"}, tweet, upsert=True)