MongoDB在组聚合后返回字段

时间:2016-04-05 14:45:12

标签: python mongodb pymongo

我认为这是一个非常微不足道的问题,对我来说很困难。

我为网站的用户提供了一系列事件数据。我正在尝试为每个用户找到目标网页。唯一身份用户拥有字段anonymousId,用户当前页面路径位于嵌套字段context.page.path中。

我可以找到用户访问的第一个日期,但不确定如何在同一查询中提取与该日期一起的context.page.path。我也在页面路径上使用了$first运算符,但我确信这是不正确的......

这是我用来在Python(pymongo)中创建游标的代码:

cursor = db.events.aggregate({ 
    '$group':
    { 
        '_id': '$anonymousId',
        'date': { '$first': '$timestamp' },
        'page': { '$first': '$context.page.path' }
    } 
})

修改

以下是此集合的文档结构(编辑)......

{
    "anonymousId": "...",
    "timestamp": "2016-04-05T13:05:06.076Z",
    "context": {
        "page": {
            "path": "...",
            "referrer": "...",
            "title": "...",
            "url": "..."
        }
    },
    ... more fields here but not relevant to this question
}

1 个答案:

答案 0 :(得分:0)

我想我可能已经弄明白了......但我仍然没有100%肯定。

cursor = db.events.aggregate([
{ 
    '$group':
    { 
        '_id': '$anonymousId',
        'date': { '$first': '$timestamp' },
        'page': { '$push': '$context.page.path' }
    }
},
{ 
    '$unwind': '$page' 
}
])

原谅可怜的缩进......