Как конвертировать дату в твиттере, используя конвейер агрегации с pymongo? - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть коллекция mongodb, в которой я храню твиты.Я хочу агрегировать количество твитов и самую раннюю дату, когда человек опубликовал твит.

До сих пор я использовал этот запрос:

pipe = [
       {"$group": {"_id": "$user.screen_name", "count": {"$sum": 1}, 
                  "minDate":{"$min":"$created_at"}}}]

list(collection_full.aggregate(pipeline=pipe))

Но минимум основан на строке, такЯ всегда получаю пятницы, потому что буква F стоит на первом месте в алфавите.Я хочу преобразовать "$ made_at" в datetime.

Спасибо.

1 Ответ

0 голосов
/ 24 декабря 2018

Я нашел ответ после просмотра документации.Мне пришлось создать новую переменную в конвейере.
Этот скрипт работал для меня:

pipe = [ { "$addFields": { "create_date": { "$dateFromString": {"dateString": "$created_at"} } } },
      { "$group": {"_id": "$user.screen_name", "count": {"$sum": 1}, "minDate":{"$min":"$create_date"}}}]   
list(collection_full.aggregate(pipeline=pipe))
...