$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 }
实例讲解:
{ "_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的值不同外,其他的值都是相同的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。