有如下的表
MessageTable
TableA 和 TableB
其中MessageTable的记录中有个字段“SwitchTable”记录的是期望连表查询的表名,该字段的为String类型,并且值只会是TableA或者TableB。TableID记录的是查询表的ID,可TableA或者TableB的_id对应。
我需要用用到联合查询的Lookup,于是我写了下面的用法
lookup({
from: "$SwitchTable",
//我希望在这里通过变量的方式引入查询表的名称,这个值来源于MessageTable中的SwitchTable字段
localField: "TableID",
foreignField: "_id",
as: "Info"
})
可是这样的语句查询出来Info字段为空,我知道肯定是我的语句有问题,因为如果我把 $SwitchTable 换成具体的值,Info是能获取到内容的。
可是这样的应该怎么写语句呢?
你的意思要做两次聚合?这个思路应该可行,就是不知道性能怎么样。