2016-04-05 19 views
0

Benim için zor olduğu ortaya konan oldukça önemsiz bir sorgu olurdu.MongoDB grup kümelemesinden sonra geri dönüş alanları

Web sitesi için kullanıcılar için etkinlik verisi koleksiyonum var. Her kullanıcı için açılış sayfasını bulmaya çalışıyorum. Benzersiz kullanıcılar anonymousId alanına sahiptir ve kullanıcıların geçerli sayfa yolu context.page.path iç içe geçmiş alanındadır.

Kullanıcının ziyaret ettiği ilk tarihi bulabilirim, ancak aynı sorguda bu tarihle birlikte giden context.page.path'u nasıl çıkaracağından emin değilim. Ben de sayfa yolda $first operatörü kullanılır, ama burada

Python içinde imleci oluşturmak için kullanıyorum kodu (pymongo) 'dir ... Bu yanlış eminim:

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

Düzenleme: İşte

Bu koleksiyonun (redacted) için doküman yapıdır ...

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

Eğer belge yapısını eklemek eğer - o zaman profesor79 katma @ sayesinde sorunu – profesor79

+0

çözmek daha kolay olacaktır. – markdjthomas

cevap

0

Ben I ma düşünüyorum Bunu anladım ... ama hala% 100 olumlu değilim.

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

fakir girinti affet

...

İlgili konular