2016-08-19 107 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