加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【mongoDB实战】聚合管道--$unwind

发布时间:2020-12-14 01:20:38 所属栏目:百科 来源:网络整理
导读:$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。 在做项目的时候碰上了这样的需求: 实例讲解: { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"name" : "陈晓婵","address" : "北京朝阳区","weekday" : [ 1,2,3,4,5 ] } 对wee

$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。

在做项目的时候碰上了这样的需求:


实例讲解:

{ "_id" : ObjectId("5951c5de567ebff0d5011fba"),"name" : "陈晓婵","address" : "北京朝阳区","weekday" : [ 1,2,3,4,5 ] }

对weekday进行拆分:


db.getCollection('chenxiaochantest').aggregate( [ { $unwind:"$weekday" } ] )

拆分结果:

/* 1 */ { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"weekday" : 1 } /* 2 */ { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"weekday" : 2 } /* 3 */ { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"weekday" : 3 } /* 4 */ { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"weekday" : 4 } /* 5 */ { "_id" : ObjectId("5951c5de567ebff0d5011fba"),"weekday" : 5 }


使用$unwind可以将weekday中的每个数据都被分解成一个文档,并且除了weekday的值不同外,其他的值都是相同的.


实例讲解:

{ "_id" : ObjectId("5951ca15567ebff0d5011fbb"),"address" : "北京朝阳","lunch" : [ { "food" : "baozi","fruit" : "taozi" },{ "food" : "miaotiao","fruit" : "xigua" } ] }

对lunch进行拆分:

db.getCollection('chenxiaochantest2').aggregate( [ { $unwind:"$lunch" } ] )


拆分结果:


/* 1 */ { "_id" : ObjectId("5951ca15567ebff0d5011fbb"),"lunch" : { "food" : "baozi","fruit" : "taozi" } } /* 2 */ { "_id" : ObjectId("5951ca15567ebff0d5011fbb"),"lunch" : { "food" : "miaotiao","fruit" : "xigua" } }

使用$unwind可以将lunch中的每个数据都被分解成一个文档,并且除了lunch的值不同外,其他的值都是相同的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读