《MongoDB aggregation $unwind》要點(diǎn):
本文介紹了MongoDB aggregation $unwind,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:非關(guān)系型數(shù)據(jù)庫(kù)
《MongoDB aggregation $unwind》是否對(duì)您有啟發(fā),歡迎查看更多與《MongoDB aggregation $unwind》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
$unwind的作用是將文檔中的某一個(gè)數(shù)組類型字段拆分成多條,每條包含數(shù)組中的一個(gè)值.
官方文檔地址:https://docs.mongodb.com/manual/reference/operator/aggregation/unwind/
比如文章信息有標(biāo)簽tags,值有java,mongodb,spring
{
"_id": 1001,
"tags": [
"java",
"mongodb",
"spring"
]
}
假如我們要將tags拆分顯示,也就是每個(gè)tag都顯示成一條單獨(dú)的數(shù)據(jù)
db.article_info.aggregate( { $unwind : "$tags" })
結(jié)果如下:
{ "_id" : 1001, "tags" : "java" }
{ "_id" : 1001, "tags" : "mongodb" }
{ "_id" : 1001, "tags" : "spring" }
假如我們的需求是統(tǒng)計(jì)每個(gè)tag出現(xiàn)的次數(shù)
這個(gè)時(shí)候就需要用到先將$unwind tags拆分,然后根據(jù)具體的tag來(lái)做分組統(tǒng)計(jì)
> db.article_info.aggregate(
... { $unwind : "$tags" },
... { $group : { "_id" : "$tags", "count" : { $sum : 1 } } },
... { $project : { "tag" : "$_id", "count" : 1 } }
... )
結(jié)果如下:
{ "_id" : "spring", "count" : 1, "tag" : "spring" }
{ "_id" : "mongodb", "count" : 1, "tag" : "mongodb" }
{ "_id" : "java", "count" : 1, "tag" : "java" }
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10174.html