咸虾米
咸虾米
  • 发布:2025-05-15 23:02
  • 更新:2025-05-15 23:02
  • 阅读:15

【报Bug】支付宝云使用聚合联表查询,pipeline内不支持$.filter写法格式,阿里云没有问题

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

操作步骤:

按照提示代码进行复现

预期结果:

可以使用filter进行数组过滤

实际结果:

聚合内不支持$.filter,导致查询出的结果为null

bug描述:

async demo(status=1){  
        let res = await dbJQL.collection("JLJ-pay-orders").aggregate()  
            .match(`order_status == ${status}`)  
            .unwind('$goods_list') // 展开goods_list数组  
            .lookup({  
                from: "JLJ-mall-goods",  
                let: {  
                    goods_id: '$goods_list.goods_id',  
                    sku_id: '$goods_list.sku_id'  
                },  
                pipeline: $.pipeline()  
                    .match(dbCmd.expr($.eq(['$_id', '$$goods_id'])))  
                    .project({  
                        name: 1,  
                        sku: $.filter({  
                          input: '$sku',  
                          as: 'item',  
                          cond: $.eq(['$$item._id', '$$sku_id'])  
                        })                        
                    })                    
                    .done(),  
                as: "goodsInfo"  
            })  
            .sample({  
                size: 5  
            })  
            .skip(1)  
            .end()  

            return res;  
    }

上面写法格式,想要对字段进行过滤,但是支付宝云不支持数据库运算方法,不支持$.filter,导致查询出的结果为null

2025-05-15 23:02 负责人:无 分享
已邀请:

要回复问题请先登录注册