首页 > 解决方案 > 如果某些产品有折扣价(猫鼬),如何按价格对产品进行排序?

问题描述

所以我想按价格订购产品 - ASC 和 DESC,但有些产品会有 discounted:true 属性。如果打折是真的排序应该使用折扣价格字段,如果是假的 - 他们应该使用价格字段。

我使用猫鼬版本:^5.1.0

这是我的(不工作)解决方案

products.find({}, {sort: { price: 1, discountPrice: 1 }})

使用这些产品:

{ 
 name: 'p1',
 price: 10,
 discountPrice: 5,
 discounted: true
},
{ 
 name: 'p2',
 price: 11,
 discountPrice: 8,
 discounted: false
},
{ 
 name: 'p3',
 price: 990,
 discountPrice: 6, 
 discounted: true
}

我希望输出是: [p1, p3, p2] 但实际输出是: [p1, p2, p3]

标签: mongodbsortingmongoose

解决方案


推荐阅读