MongoDB #13
نویسنده: برات جوادی
تاریخ: ۱۳۹۳/۱۱/۱۹ ۲۲:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by_user: 'user1',
url: 'http://www.site.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
},
{
_id: ObjectId(7df78ad8902d)
title: 'NoSQL Overview',
description: 'No sql database is very fast',
by_user: 'user1',
url: 'http://www.site.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 10
},
{
_id: ObjectId(7df78ad8902e)
title: 'Neo4j Overview',
description: 'Neo4j is no sql database',
by_user: 'Neo4j',
url: 'http://www.neo4j.com',
tags: ['neo4j', 'database', 'NoSQL'],
likes: 750
}, > db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
"result" : [
{
"_id" : "user1",
"num_tutorial" : 2
},
{
"_id" : "Neo4j",
"num_tutorial" : 1
}
],
"ok" : 1
}
> select by_user, count(*) from mycol group by by_user
| عبارت | توضیحات | مثال |
| $sum | مقدار تعیین شده از همه سندهای مجموعه را جمع میکند. | db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}]) |
| $avg | میانگین همه مقادیر بدست آمده از سندهای مجموعه را محاسبه میکند. | db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}]) |
| $min | کمترین مقادیر مشابه را از همه سندهای مجموعه، بر میگرداند. | db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}]) |
| $max | بیشترین مقادیر مشابه را از همه سندهای مجموعه، بر میگرداند. | db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}]) |
| $push | یک مقدار را در سند نتیجه، در یک آرایه درج میکند. | db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}]) |
| $addToSet | یک مقدار را در سند نتیجه در یک آرایه درج میکند، اما مقدار تکراری ایجاد نمیکند. | db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}]) |
| $first | اولین سند از اسناد را برطبق گروه بندی بر میگرداند. معمولا این عبارت بعد از عبارتهای مرتب سازی مرحلهای استفاده میشود. | db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}]) |
| $last | آخرین سند از اسناد را برطبق گروه بندی بر میگرداند. معمولا این عبارت بعد از عبارتهای مرتب سازی مرحلهای استفاده میشود. | db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}]) |