mongodb聚合逐层拆分数组元素

mongodb聚合逐层拆分数组元素

  • mongodb中的聚合操作aggregate可以实现很多对数据库文档的复杂操作,而拆分数据库中的数组类型字段元素就是功能之一,$unwind操作可以实现对文档中数组字段的拆分。
  • 对某字段进行拆分语法
	db.test.aggregate([{$unwind:'$字段名称'}])
	例如数据
	{"id" : "XXXXXX",
	"array" : [
	{item:"a",size:[{title:"a",no:1},{title:"a",no:2}]},  
	 {item:"b",size:[{title:"b",no:1},{title:"b",no:2}]},
	{item:"c",size:[{title:"c",no:1},{title:"c",no:2}]}
	]
	}
  • 第一次拆分
	db.test.aggregate([{$unwind:'$array'}])
	得到数据:
	{
	"id" : "XXXXXX",
	arrray:{item:"a",size:[{title:"a",no:1},{title:"a",no:2}]}
	},
		{
	"id" : "XXXXXX",
	arrray: {item:"b",size:[{title:"b",no:1},{title:"b",no:2}]},
	},
			{
	"id" : "XXXXXX",
	arrray: {item:"c",size:[{title:"c",no:1},{title:"c",no:2}]},
	}

*第二层拆分

db.test.aggregate([{$unwind:'$array'},{$unwind:"$array.size"}])
得到数据:
	{
	"id" : "XXXXXX",
	arrray:{item:"a",size:{title:"a",no:1}}
	},
	{
	"id" : "XXXXXX",
	arrray:{item:"a",size:{title:"a",no:2}}
	},
	{
	"id" : "XXXXXX",
	arrray:{item:"b",size:{title:"b",no:1}}
	},
	{
	"id" : "XXXXXX",
	arrray:{item:"a",size:{title:"b",no:2}}
	},
	{
	"id" : "XXXXXX",
	arrray:{item:"c",size:{title:"c",no:1}}
	},
	{
	"id" : "XXXXXX",
	arrray:{item:"c",size:{title:"c",no:2}}
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值