如何在云开发中更好地实现类似关系型数据库in(select)的查询?
SELECT * FROM tb1 WHERE user_id IN (SELECT follow_id FROM tb2 WHERE user_id='XXX')
以上为关系型数据库下的语句,请问各位大佬如何改为云开发数据库的查询
我目前的做法是用tb1的author_id去tb2中寻找当前用户的与author_id相同的follow_id的记录集,然后根据记录集的长度来判断是否符合要求,大佬们有没有更好的解决办法
db.collection('tb1').aggregate()
.lookup({
from: 'tb2',
let: {
author_id: '$user_id',
},
pipeline: $.pipeline()
.match(_.expr($.and([
$.eq(['$follow_id', '$$author_id']),
$.eq(['$user_id', 'XXX']),
])))
.done(),
as: 'tm',
})
.addFields({
tcount:$.size('$tm')
})
.match({
tcount:_.gt(0)
})
.end()