2016-08-19 120 views
1

我正在使用pymongo從mongo數據庫中提取數據。是否有可能以任何方式對投影列名進行別名。我想返回包含關鍵字「日期」,「daysworn」 &「項目」的字典

pipeline = [{ "$match": { "name": "Jack Jones",         
         "date": { 
           "$gt": dt(2015,12,31,00,00), 
           "$lt": dt(2016,06,01,00,00) 
           } 
        } 
      }, 
     {"$sort": SON(
         [ 
         ("date", 1), 
         ("person.clothes.itemId", 1) 
         ] 
        ) 
      }, 
      {"$project": { 
         "date": 1, 
         "person.clothes.daysworn": 1, 
         "person.clothes.name": 1, 
         "_id":0 
         } 
      } 
     ] 

cleanliness = people.aggregate(pipeline, allowDiskUse=True) 

是否有可能對我來說,任何方式別名投影列名。我想返回包含關鍵字「日期」,「daysworn」 &「項目」

+0

是,改變'$ project'管道'{ 「$項目」:{ 「日期」:1, 「daysworn」: 「$ person.clothes.daysworn」, 「名」 :「$ person.clothes.name」, 「_id」:0 } }' – chridam

+0

完美。非常感謝你。您能否爲我的啓發指出它在文檔中的含義?我仍然無法找到它提到的任何地方 –

+0

添加爲答案。 – chridam

回答

1

更改$project管道

{ 
    "$project": { 
     "date": 1, 
     "daysworn": "$person.clothes.daysworn", 
     "name": "$person.clothes.name", 
     "_id": 0 
    } 
} 

項目運營類似於SELECT在字典SQL。您可以使用此命令來重命名字段名稱,並通過重置現有字段的值來選擇/取消選擇要返回的字段或使用項目平滑數據,如上例所示。更多在documentation