pipeline中代码:
pipeline: $.pipeline().match(dbCmd.expr($.and([
$.eq(['$_id', '$$good_id_List'])
]))).project({
name: 1
}).done()
m***@163.com
- 发布:2021-04-26 16:58
- 更新:2021-04-26 18:28
- 阅读:643
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
1***@qq.com
回复 m***@163.com: 你好,你这白名单模式的问题解决了吗?我的怎么老是显示白名单模式,方便交流指导一下吗?
2022-06-26 18:27
DCloud_uniCloud_WYQ
回复 1***@qq.com: 重新发帖,附上代码
2022-06-27 20:25