2016-04-05 14 views
0

私がかなり簡単なクエリであると思ったのは、私にとっては難しいことでした。グループ集計後にMongoDBが返すフィールド

私は、ユーザー用のイベントデータのコレクションをウェブサイトに持っています。私は各ユーザーのランディングページを見つけようとしています。一意のユーザーはフィールド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 
} 
+0

を許して - そしてprofesor79 @問題 – profesor79

+0

を解決するために容易になりますが、感謝を追加しました。 – markdjthomas

答えて

0

私はミリアンペアと思います私はそれを理解している...しかし、私はまだ100%肯定的ではありません。

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

あなたは文書構造を追加することができれば貧しいインデント...

関連する問題