У меня есть одна база данных Монго с двумя коллекциями.Один с твитами в json-объектах и один с деревьями разговоров.
Эти деревья имеют только идентификаторы пользователей и твитов.Поэтому я хочу получить текст последнего твита с наибольшей отметкой времени мс в определенной ветви дерева из коллекции твитов, используя коллекцию дерева.Позже я хочу выполнить анализ настроений.
Я использую python / pymongo, vader и mongodb.
Мой код теперь проходит по деревьям и помещает tweet_id каждой ветви в "listt",То, что я хочу сделать, это использовать этот список и выбрать твит с наибольшей отметкой времени.Но timestamp_ms находится в другой коллекции под названием «collection», а timestamp_ms - это строка.Я хочу запросить его, чтобы получить только самый высокий объект твита timestamp_ms и добавить его в список, чтобы получить все самые высокие объекты твита timestamp_ms.
def sentiment_(trees, vader=True, ignore_id=-1):
tree_count = len(trees)
total_count = tree_count
for i, tree in enumerate(trees):
analysis_root2 = perform_sentiment(use_vader, sentence=collection.find_one({"id": tree.root.id})['text'])
listt = []
for node in tree.descendants:
if node.is_leaf:
listt.append(node.id)
print(listt)
for x in range(len(listt)):
test2 = collection.find_one({"id": listt[i], "user.id": tree.user_id}).sort("timestamp_ms", -1)
Пробовал несколько запросов, но все они выдают ошибки.