宏维同城
宏维同城
  • 发布:2022-05-27 19:43
  • 更新:2022-05-29 16:03
  • 阅读:336

云数据库pipeline中使用db.command.aggregate.in会报错

分类:uniCloud

如图当我把inviter_uid设置为字符串使用$.eq的时候是正常的拿到数据的,可是我的inviter_uid是数组时使用$.in时就会报错

2022-05-27 19:43 负责人:无 分享
已邀请:
宏维同城

宏维同城 (作者)

const roleDataResp = await userTable.aggregate().match({
inviter_uid: uid
}).project({
mobile: 1,
avatar: 1,
role: 1,
"realname_auth.real_name": 1
}).lookup({
from: "tc-income",
let: {
result_user_id: "$_id",
},
pipeline: $.pipeline().match(dbCmd.expr(
$.and(
[$.eq(['$user_id', uid]), $.eq(['$junior_id', '$$result_user_id'])]
))).group({
_id: null,
sumCommmsion: $.sum('$amount')
}).project({
sumCommmsion: 1,
_id: 0
}).done(),
as: 'commmsion', //commsion返回的是直推给uid的佣金(为uid赚的佣金)
}).lookup({
from: "uni-id-users",
let: {
result_user_id: "$_id",
},
pipeline: $.pipeline().match(dbCmd.expr(
$.eq(['$inviter_uid', '$$result_user_id'])
//$.in(['$$result_user_id','$inviter_uid'])
)).done(),
as: 'junior'
}).
end();
console.log("roleDataResp>>>", roleDataResp);

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

这时候写in是想得到什么结果?in的第一个字段不能是数组

要回复问题请先登录注册