s***@126.com
s***@126.com
  • 发布:2025-05-28 22:45
  • 更新:2025-05-28 22:45
  • 阅读:52

$.arrayElemAt返回的对象不能获取到属性名

分类:uni-app

现有一数据

        "ps_chai_arr": [  
            {  
                "amount": 58.719999999999999,  
                "chai_id": "6751c21ece5ec9aad57d0b13"  
            },  
            {  
                "amount": 60.710000000000001,  
                "chai_id": "675e93293d029cf323b0c40c"  
            }  
        ],

需要从另一个表sj-chai中读取chai_id对应在菜名, 然后把菜名加到对应的ps_chai_arr中
代码如下

    .lookup({  
        from: 'sj-chai',  
        let: { chaiId: $.map({ input: '$ps_chai_arr', as: 'chai', in: '$$chai.chai_id' }) },  
        pipeline: $.pipeline()  
            .match(dbCmd.expr($.in(['$_id', '$$chaiId'])))  
            .project({ chai_name: 1 })  
            .done(),  
        as: 'chaiInfo'  
    })  
    .addFields({  
        ps_chai_arr: $.map({  
            input: '$ps_chai_arr',  
            as: 'chai',  
            in: $.mergeObjects([  
                '$$chai',  
                {  
                    // 重点:提取 chai_name.chai_name 到 name 字段  
                    chaiName: $.arrayElemAt([  
                        $.filter({  
                            input: '$chaiInfo',  
                            as: 'info',  
                            cond: $.eq(['$$info._id', '$$chai.chai_id'])  
                        }),  
                        0 // 取匹配到的第一个元素  
                    ]) // 直接获取 chai_name 值  
                }  
            ])  
        })  
    })

得到的数据如下

     "ps_chai_arr": [  
            {  
                "amount": 58.719999999999999,  
                "chaiName": {  
                    "_id": "6751c21ece5ec9aad57d0b13",  
                    "chai_name": "测试菜T02"  
                },  
                "chai_id": "6751c21ece5ec9aad57d0b13"  
            },  
            {  
                "amount": 60.710000000000001,  
                "chaiName": {  
                    "_id": "675e93293d029cf323b0c40c",  
                    "chai_name": "测试菜Z01"  
                },  
                "chai_id": "675e93293d029cf323b0c40c"  
            }  
        ],

问题是只要我在$.arrayElemAt后面加.chai_name,是获取不到这个字段的

$.arrayElemAt([....................,0]) .chai_name

请问是不是BUG

2025-05-28 22:45 负责人:无 分享
已邀请:

要回复问题请先登录注册