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

Я студент, который плохо знаком с no-SQL и Python.Я использую Python-3.7 с пакетом pymongo 3.7.2 для доступа к документам из MongoDb, чтобы провести анализ данных из Twitter, извлеченных через API в MongoDB.

1) Я хочу выбрать только определенные поля и указать их враздел проекции запроса find ().Я хочу отобразить результат для отображения в консоли Python с «user.screen_name» как «TwitterHandle», «user.statuses_count» как «TotalNumberOfTweets» и «text» как «TweetText».

2) Поскольку длина текстового поля очень велика, я хочу выбрать только первые 20 символов и использовать их для отображения.

ПРИМЕЧАНИЕ. Я не хочу постоянно переименовывать поле json в Mongo, поэтому подумайте$ rename здесь не подходит.

Запрос курсора в python кодируется, как показано ниже, и работает нормально.Это делается без переименования для целей отображения, а также без усечения значения «текст» до 20 символов:

CursorTop10 = collection.find({"created_at": {"$exists": 1}},{"_id" :0, "user.screen_name" :1, "user.statuses_count" :1, "text": 1}).sort([("user.statuses_count", -1)]).limit(10)

Макет данных в MongoDb имеет два типа записей, и меня интересуют только те, у кого есть «create_at»поле ":

{
"_id" : ObjectId("5c23657d7fd09d526413a58e"),
"created_at" : "Wed Dec 26 11:18:15 +0000 2018",
"text" : "textValue blah 1 blah 1 can be very long and carry on",
<Many more field-value pairs>,
"user":
   {    
    "name" : "nameValue1",
    "screen_name" : "screen_nameValue1",
    <Many more field-value pairs>,
    "statuses_count": 12345,
    <Many more field-value pairs>
   }
<Many more field-value pairs>
}
{
"_id" : ObjectId("5c23657d7fd09d526413a58f"),
"delete" :
    {
     <Some field-value pairs>,
    }
}

Благодарим Вас за помощь!Rgds, rbewoor

...