产品页面聚合方法

我们有很多的产品,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}},{$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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...