MongoDBèå
åšæ¬é¡µé¢
èåæäœå€çæ°æ®è®°åœå return 计ç®ç»æãèåæäœå°æ¥èªå€äžªææ¡£çåŒç»ååšäžèµ·ïŒå¹¶äžå¯ä»¥å¯¹åç»æ°æ®æ§è¡åç§æäœä»¥è¿ååäžªç»æã MongoDB æäŸäºäžç§æ§è¡èåçæ¹æ³ïŒèå管éïŒmap-reduce functionååäžç®çèåæ¹æ³ã
MongoDB çAggregation frameworkæ¯ä»¥æ°æ®å€ç管éçæŠå¿µäžºèæ¬çãææ¡£è¿å
¥å€é¶æ®µç®¡éïŒå°ææ¡£èœ¬æ¢äžºèåç»æãäŸåŠïŒ
åšè¿äžªäŸåäžïŒ
db.orders.aggregate([
{ $match: { status: "A" } },
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } }
])
第äžé¶æ®µïŒ
$match
é¶æ®µæstatus
åæ®µè¿æ»€ææ¡£ïŒå¹¶å°status
çäº"A"
çææ¡£äŒ éå°äžäžé¶æ®µã第äºé¶æ®µïŒ
$group
é¶æ®µæcust_id
åæ®µå°ææ¡£åç»ïŒä»¥è®¡ç®æ¯äžªå¯äžåŒcust_id
çé颿»åãæåºæ¬ç管éé¶æ®µæäŸ_è¿æ»€åš_ïŒå
¶æäœç±»äŒŒäºæ¥è¯¢åä¿®æ¹èŸåºææ¡£æ ŒåŒç_ææ¡£èœ¬æ¢_ã
å
¶ä»ç®¡éæäœæäŸäºçšäºæç¹å®åæ®µå¯¹ææ¡£è¿è¡åç»åæåºçå·¥å
·ïŒä»¥åçšäºæ±æ»å
æ¬ææ¡£æ°ç»åšå
çæ°ç»å
容çå·¥å
·ãåŠå€ïŒç®¡éé¶æ®µå¯ä»¥å°è¿ç®ç¬Šçšäºè¯žåŠè®¡ç®å¹³ååŒæè¿æ¥å笊 äž²ä¹ç±»çä»»å¡ã
管é䜿çšMongoDBäžçåçæäœæäŸææçæ°æ®èåïŒå¹¶äžæ¯MongoDBäžæ°æ®èåçéŠéæ¹æ³ã
èå管éå¯ä»¥äœ¿çšçŽ¢åŒæ¥æ¹åå
¶æäºé¶æ®µçæ§èœãæ€å€ïŒèå管éå
·æå
éšäŒåé¶æ®µãæå
³è¯Šç»ä¿¡æ¯ïŒè¯·åé
管éæäœå玢åŒåèå管éäŒåã
MongoDB è¿æäŸmap-reduceæäœæ¥æ§è¡èåãéåžžïŒmap-reduce æäœæäž€äžªé¶æ®µïŒäžäžª map é¶æ®µïŒå®å€çæ¯äžªææ¡£å¹¶äžºæ¯äžªèŸå
¥ææ¡£ååºäžäžªæå€äžªå¯¹è±¡ïŒä»¥åå°mapæäœçèŸåºç»ååšäžèµ·ç_reduce_é¶æ®µãå¯éå°ïŒmap-reduce å¯ä»¥å
·ææç»åé¶æ®µä»¥å¯¹ç»æè¿è¡æç»ä¿®æ¹ãäžå
¶ä»èåæäœäžæ ·ïŒmap-reduce å¯ä»¥æå®æ¥è¯¢æ¡ä»¶ä»¥éæ©èŸå
¥ææ¡£ä»¥åå¯¹ç»ææåºåéå¶ã
Map-reduce 䜿çšèªå®ä¹ JavaScript åœæ°æ¥æ§è¡ map å reduceæäœïŒä»¥åå¯éç finalize æäœãäžèå管éçžæ¯ïŒèªå®ä¹JavaScriptæäŸäºåŸå€§ççµæŽ»æ§ïŒäœéåžžæ
åµäžïŒmap-reduceæ¯èå管éæçäœïŒèäžæŽå€æã
Map-reduce å¯ä»¥åšåçéå sharded collectionäžè¿è¡ã Map-reduce æäœä¹å¯ä»¥èŸåºå°åçéåãæå
³è¯Šç»ä¿¡æ¯ïŒè¯·åé
èå管éååçéååMap-Reduce å Sharded Collectionsã
[success] 泚æä» MongoDB 2.4 åŒå§ïŒåš map-reduce æäœäžæ æ³è®¿é®æäºmongoshell åœæ°å屿§ã MongoDB 2.4 è¿æ¯æå€äžª JavaScript æäœä»¥åšåäžæ¶éŽè¿è¡ãåš MongoDB 2.4 ä¹åïŒJavaScript code åšå䞪线çšäžæ§è¡ïŒåŒåäº map-reduce çå¹¶åé®é¢ã
垊泚éç map-reduce æäœåŸ
MongoDB è¿æäŸ db.collection.estimatedDocumentCount(), db.collection.count()ådb.collection.distinct()ã
ææè¿äºæäœéœè忥èªå䞪éåçææ¡£ãèœç¶è¿äºæäœæäŸäºå¯¹åžžè§èåè¿çšçç®å访é®ïŒäœå®ä»¬çŒºä¹èå管éå map-reduce ççµæŽ»æ§ååèœã
垊泚éçäžåæäœçåŸè¡š
è¯è
ïŒæå é£

MongoDBäžæç€ŸåºâMongoDBç±å¥œè
ææ¯äº€æµå¹³å°
èµæºå衚æšè | èµæºå
¥å£ |
---|---|
MongoDBäžæç€Ÿåºå®çœ | |
埮信æå¡å· ââææ°èµè®¯åäŒèŽšæç« | Mongoingäžæç€ŸåºïŒmongoing-mongoingïŒ |
埮信订é
å· ââååžææ¡£ç¿»è¯å
容 | MongoDBäžæçšæ·ç»ïŒmongoing123ïŒ |
宿¹åŸ®ä¿¡å· ââ 宿¹ææ°èµè®¯ | MongoDBæ°æ®åºïŒMongoDB-ChinaïŒ |
MongoDBäžæç€Ÿåºç»å§äŒæåä»ç» | |
MongoDBäžæç€Ÿåºç¿»è¯å°ç»ä»ç» | |
MongoDBäžæç€ŸåºåŸ®ä¿¡ææ¯äº€æµçŸ€ | æ·»å 瀟åºå©çå°èæåŸ®ä¿¡ïŒID:mongoingcomïŒïŒå¹¶å€æ³š mongo |
MongoDBäžæç€ŸåºäŒè®®åææ¡£èµæº | |
MongoDBäžæç€Ÿåºå€§åå客 | |
MongoDBçœç®ä¹Š | |
MongoDBååŠè
æçš-7倩å
¥éš | |
ç€ŸåºæŽ»åšé®ä»¶è®¢é
|
æè¿æŽæ° 1yr ago