2014-09-03 54 views
1

我正在尋找一個嵌套對象內的給定值執行一個組。例如,我的文檔結構如下:在mongodb中嵌套對象時的組查詢

{ 
    "ip_address": "192.168.132.12", 
    "timestamp" : "2014-08-28T06:41:24", 
    "response" : 200, 
    "uri": { 
    "term": "value A", 
    "page" : "1", 
    "category" : "category 1" 
    } 
} 

什麼我期待在實現須待uri.term場進行羣組聚集。我知道直接領域如何實現這一點,例如"ip_address"

db.search_stb.aggregate({ $group : {_id : "$ip_address", total : { $sum : 1 }} }); 

但我完全停留在如何爲嵌套對象做到這一點。

任何幫助將不勝感激!

+0

你試過{_id:「$ uri.term」}嗎? – 2014-09-03 13:55:28

回答

1

你只需要使用'。'運營商如下:

db.search_stb.aggregate({ $group : {_id : "$uri.term", total : { $sum : 1 }} }); 
+0

謝謝 - 我覺得真的很愚蠢,因爲這是一個簡單的答案!另一個問題,因爲'uri.term'是可選的,我如何讓聚合排除或忽略空值? – clangers 2014-09-03 14:06:02

+0

Np,排除不爲空將是另一個問題,用相同的標籤檢查問題,你一定會找到正確的答案.. :)接受答案,如果它有用,以便它將作爲其他人的參考。 – vmr 2014-09-03 14:08:31