時(shí)間:2024-03-26 14:43作者:下載吧人氣:21
group做的聚合有些復(fù)雜。先選定分組所依據(jù)的鍵,此后MongoDB就會(huì)將集合依據(jù)選定鍵值的不同分成若干組。然后可以通過聚合每一組內(nèi)的文檔,產(chǎn)生一個(gè)結(jié)果文檔。
和數(shù)據(jù)庫一樣group常常用于統(tǒng)計(jì)。MongoDB的group還有很多限制,如:返回結(jié)果集不能超過16M, group操作不會(huì)處理超過10000個(gè)唯一鍵,好像還不能利用索引[不很確定]。
Group大約需要一下幾個(gè)參數(shù)。
1.key:用來分組文檔的字段。和keyf兩者必須有一個(gè)
2.keyf:可以接受一個(gè)javascript函數(shù)。用來動(dòng)態(tài)的確定分組文檔的字段。和key兩者必須有一個(gè)
3.initial:reduce中使用變量的初始化
4.reduce:執(zhí)行的reduce函數(shù)。函數(shù)需要返回值。
5.cond:執(zhí)行過濾的條件。
6.finallize:在reduce執(zhí)行完成,結(jié)果集返回之前對(duì)結(jié)果集最終執(zhí)行的函數(shù)。可選的。
下面介紹一個(gè)實(shí)例:
先插入測(cè)試數(shù)據(jù):
for(var i=1; i<20; i++){ var num=i%6; db.test.insert({_id:i,name:"user_"+i,age:num}); }
網(wǎng)友評(píng)論