无
![h***@163.com](https://img-cdn-tc.dcloud.net.cn/account/identicon/3d17fd6a4a2025aeaf8bf9805ac9dbc7.png)
h***@163.com
- 发布:2024-04-23 17:57
- 更新:2025-02-09 21:42
- 阅读:149
产品分类: uniCloud/App
操作步骤:
预期结果:
无
无
实际结果:
无
无
bug描述:
const dbCmd = db.command
const $ = dbCmd.aggregate
db.collection('bx_activity_join').aggregate().lookup({
from: 'uni-id-users',
let: {
_id: '$_id'
},
pipeline: $.pipeline()
.match(dbCmd.expr(
$.eq(['$_id', '$$_id'])
))
.done(),
as: '某某'
}).end();
代码如上 (图1)我理解的 即使匹配数据为空 但是也不应该出现字符开头不正确的问题
当我换成原生mong的写法后 又提示另外的错误(图2)
const dbCmd = db.command
const $ = dbCmd.aggregate
db.collection('bx_activity_join').aggregate().lookup({
from: 'uni-id-users',
let: {
_id: '$_id'
},
pipeline: [{
$match:{
$expr:{
$eq:['$_id', '$$_id']
}
}
}],
as: '某某'
}).end();
![](http://img-cdn-tc.dcloud.net.cn/uploads/questions/20240423/0fa16d0108718689be655a6c89b73639.png)
![](http://img-cdn-tc.dcloud.net.cn/uploads/questions/20240423/839d34fb5ee93f13ef53f37475a77fe8.png)
![DCloud_uniCloud_VK](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/002/18/32/04_avatar_mid.jpg?v=1666171648)
let 内的变量不能和副表已经存在的字段重名,你需要换个变量名,比如用主表名 + 字段名方式起名
下面的代码代表 bx_activity_join 表的 user_id 和 uni-id-users表的_id进行连表的案例
const dbCmd = db.command
const $ = dbCmd.aggregate
db.collection('bx_activity_join').aggregate().lookup({
from: 'uni-id-users',
let: {
bx_activity_join_user_id: '$user_id'
},
pipeline: $.pipeline()
.match(dbCmd.expr(
$.eq(['$_id', '$$bx_activity_join_user_id'])
))
.done(),
as: '某某'
}).end();