MongoDB聚合管道$项目

时间:2016-08-19 12:42:51

标签: mongodb pandas dataframe pymongo aggregation-framework

我使用pymongo从mongo数据库中提取数据。我是否可以以任何方式为预计的列名称添加别名。我想返回一个包含键的字典" date"," 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)

我是否可以以任何方式为预计的列名称添加别名。我想返回一个包含键的字典" date"," daysworn",& "项目"

1 个答案:

答案 0 :(得分:1)

$project 管道更改为

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

项目运营商与SELECT中的SQL类似。您可以使用它来重命名字段名称并选择/取消选择要返回的字段,甚至可以使用项目展平数据,如上例所示,重置现有字段的值。 documentation

中的更多内容