产品页面聚合方法

我们有很多的产品,sku   spu

一个spu下面有很多sku

我们的sku 是以颜色和尺码,这个一般涉及到服装


1.先按照分类id where  先按照一个字段(加入一个字段,这个字段是spu相同的各个产品用来获取显示优先级的,这个优先值最高的,会显示在分类中。)排序。

2.1我们按照spu进行聚合,得到列表值,得到总数

2.2我们按照spu进行聚合,然后按照销量,或者价格,或者名字进行排序,然后limit+skip 得到相应的数据

3.侧栏的按照 color size 等等其他的进行聚合得到各个个数


如果用户选择了颜色:

1.按照分类id,颜色进行where,然后按照字段排序

2. 1按照spu聚合,然后在聚合得到总数

2.2我们按照spu进行聚合,然后按照销量,或者价格,或者名字进行排序,然后limit+skip 得到相应的数据

3.侧栏的按照 color size 等等其他的进行聚合得到各个个数


mongodb实现:

得到总数:

db.erp_product_flat.aggregate( [
{$match: {"on_shelf_date_day":{"$gt":"2016-04-01"}}},
{$group: { _id: "$spu",spu:{$first:"$spu"},sku:{$first:"$sku"},on_shelf_date_day:{$first:"$on_shelf_date_day"}} },
{$group:{_id:null, total:{$sum:1}}},
] );


得到产品列表:

db.erp_product_flat.aggregate( [
{$match: {"on_shelf_date_day":{"$gt":"2016-04-01"}}},
{$sort:{spu:1,sku:1}},
{$group: { _id: "$spu",spu:{$first:"$spu"},sku:{$first:"$sku"},on_shelf_date_day:{$first:"$on_shelf_date_day"}} },
{$sort:{on_shelf_date_day:-1}}
] );

侧栏得到颜色的各个维度以及个数:

db.erp_product_flat.aggregate( [
{$match: {"on_shelf_date_day":{"$gt":"2016-04-01"}}},
{$group: { _id: "$color",count:{$sum:1}} },
] );


二:

分类要有一个字段,标示在分类页面侧栏过滤,有哪些字段要过滤。0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值