m***@163.com
m***@163.com
  • 发布:2021-04-26 16:58
  • 更新:2021-04-26 18:28
  • 阅读:118

报错:pipeline中首个project方法内仅可使用白名单模式

分类:uniCloud

pipeline中代码:
pipeline: $.pipeline().match(dbCmd.expr($.and([
$.eq(['$_id', '$$good_id_List'])
]))).project({
name: 1
}).done()

2021-04-26 16:58 负责人:无 分享
已邀请:
DCloud_UNI_WYQ

DCloud_UNI_WYQ

你要给name赋值成1?还是要保留name字段?

  • m***@163.com (作者)

    谢谢回复,初次使用聚合查询,已经解决了,主表order中有一个字段good_id_List是对象数组,保存了goods表中的id,我想要的是关联查询goods返回goods中的name和image字段,最后我用good_id_List存储了goods中返回结果。完整代码贴下

    const $ = db.command.aggregate;

    const dbCmd = db.command;

    db.collection('order').aggregate().match({

    user_id: '60756d415f1aa00001bae8e7'

    }).unwind({

    path: '$good_id_List',

    preserveNullAndEmptyArrays: true

    })

    .lookup({

    from: "goods",

    let: {

    good_id_List: '$good_id_List.good_id'

    },

    pipeline: $.pipeline()

    .match(dbCmd.expr($.and([

    $.eq(['$_id', '$$good_id_List'])

    ])))

    .project({

    name: 1,

    image:1,

    })

    .done(),

    as: "good_id_List"

    }).skip(0)

    .limit(10)

    .end();

    2021-04-27 15:32

要回复问题请先登录注册