2015-07-20 12 views
0
[ 
{ "$match": { 
    "created":{ 
     "$gte": ISODate("2015-07-19T07:26:49.045Z") 
    }, 
    "created":{ 
     "$lte": ISODate("2015-07-20T07:37:56.045Z") 
    } 
}}, 
{ "$group:{ 
    "_id":{ 
     "ln":"$l.ln", 
     "cid":"$cid" 
    }, 
    "appCount":{ "$sum": 1 } 
}}, 
{ "$group": { 
    "_id": { "ln":"$_id.ln" }, 
    "cusappCount": { "$sum": 1 } 
}}, 
{ "$sort":{ "_id.ln":1 } } 
] 

在上面的mongo db查詢中,我無法顯示結果中的appcount ..我能夠顯示cusappCount。任何人都可以請幫我在這Mongo db第一組groupby count無法顯示

+0

上面的代碼是單一的查詢 – user1920

+0

您需項目第一數到第二組,但兩項罪名似乎在一目瞭然不相容 – Sammaye

回答

1

$match是錯誤的開始,並沒有做你的想法。它只是選擇「第二」的說法:

"created":{ 
    "$lte": ISODate("2015-07-20T07:37:56.045Z") 
} 

因此,您的選擇是不正確的開始。

這和以下其他更正:

[ 
    { "$match": { 
     "created": { 
      "$gte": ISODate("2015-07-19T07:26:49.045Z"), 
      "$lte": ISODate("2015-07-20T07:37:56.045Z") 
     } 
    }}, 
    { "$group":{ 
     "_id": { 
      "ln":"$l.ln", 
      "cid":"$cid" 
     }, 
     "appCount":{ "$sum": 1 } 
    }}, 
    { "$group": { 
     "_id": "$_id.ln", 
      "cusappCount": { "$sum": "$appCount" }, 
      "distinctCustCount": { "$sum": 1 } 
    }}, 
    { "$sort":{ "_id": 1 } } 
] 

這似乎是你正在嘗試做的。

因此,當您在「更廣泛」的層次上分組時,您的小數「count」會傳遞到$sum。 「第二」計數僅用於早期密鑰中的「不同」項目。

如果您試圖「保留」「appCount」的值,那麼問題在於您的「分組」是「帶走」出現在的細節級別。那麼它是什麼woth,那麼這就是你在輸出結構使用「陣列」:

[ 
    { "$match": { 
     "created": { 
      "$gte": ISODate("2015-07-19T07:26:49.045Z"), 
      "$lte": ISODate("2015-07-20T07:37:56.045Z") 
     } 
    }}, 
    { "$group":{ 
     "_id": { 
      "ln":"$l.ln", 
      "cid":"$cid" 
     }, 
     "appCount":{ "$sum": 1 } 
    }}, 
    { "$group": { 
     "_id": "$_id.ln", 
      "cusappCount": { "$sum": 1 }, 
      "custs": { "$push": { 
       "cid": "$_id.cid", "appCount": "$appCount" 
      }} 
    }}, 
    { "$sort":{ "_id": 1 } } 
] 
+0

非常感謝@Blakes七 – user1920

+0

我的文檔結構 { 「_id」:物件( 「55acf4819d735e293623c95b」), 「L」:{ 「LN」: 「坎曼」, 「的LGP」: {「llon」:「17.2333738」, 「llat」:「17.2333738」 }, 「lc」:「India」, 「lz」:「507001」 }, 「cid」:「ABCD」, 「created」:ISODate(「2015-07-20T13:15:45.198Z」) } 我需要一個特定位置有多少條目以及一個位置有多少個不同的cid條目。你能幫我解決這個問題 – user1920

+0

@ user1920它被認爲是不好的禮節,所以在評論中提問更多的問題(或更新原始帖子,提出更多問題)。接受它作爲答案,併爲您的新問題創建一個新問題。 –