MongoDB Shell查询距最低库存5%阈值的即将售罄商品方法
MongoDB Shell查询即将售罄商品实现方案
规则前置确认
已知固定业务参数:
- 最低库存阈值:
0 - 参考最高库存值:
50 - 筛选规则:库存距离最低库存阈值差值占总库存区间比例≤5%的商品,判定为即将售罄
总库存区间跨度为50 - 0 = 50,5%比例对应的库存临界值为50 * 5% = 2.5。注意:如果业务要求库存统计取整,可将临界值调整为2或3,适配整数库存的判断逻辑。
可直接执行的Shell查询语句
不需要聚合操作,直接使用find方法即可完成筛选,执行后会返回所有符合条件的商品完整文档:
db.product.find( { inStock: { $lte: 2.5 } } )
如果需要按需指定返回字段,可在第二个参数中配置投影规则,示例如下:
db.product.find( { inStock: { $lte: 2.5 } }, { _id: 1, name: 1, img: 1, price: 1, inStock: 1 } )
通用适配逻辑
如果后续最低、最高库存阈值调整,可直接套用通用比例公式计算临界值,不需要修改查询结构:
临界值 = 最低库存阈值 + (最高参考库存 - 最低库存阈值) * 5%
筛选条件固定写法:inStock: { $lte: 计算得到的临界值 }
你给出的示例文档中inStock=60远大于临界值,会被正常过滤,不会出现在返回结果中。
内容的提问来源于stack exchange,提问作者George ak
相关产品推荐
相关产品推荐

