Javascript 如何在基础级别包含包含关系集合字段的where条件

Javascript 如何在基础级别包含包含关系集合字段的where条件,javascript,node.js,mongodb,loopbackjs,Javascript,Node.js,Mongodb,Loopbackjs,我有两个表警报和警报类型。警报属于警报类型,该类型作为对象id存储在警报表中。有一个警报列表,其中显示从alertTypes集合获取的警报基本详细信息和警报类型名称。有一个搜索过滤器,用户可以通过该过滤器输入关键字来搜索字段:alertTitle或alertDescription或alertTypeName matches。但问题是alertTypeName位于另一个表中,我们正在使用include获取该表。如何编写搜索输入关键字的查询,如:alertTitle或alertDescription

我有两个表警报和警报类型。警报属于警报类型,该类型作为对象id存储在警报表中。有一个警报列表,其中显示从alertTypes集合获取的警报基本详细信息和警报类型名称。有一个搜索过滤器,用户可以通过该过滤器输入关键字来搜索字段:alertTitle或alertDescription或alertTypeName matches。但问题是alertTypeName位于另一个表中,我们正在使用include获取该表。如何编写搜索输入关键字的查询,如:alertTitle或alertDescription或alertTypeName

  if (typeof keyword !== "undefined") {
var keywordFilter = new RegExp(".*" + keyword + ".*", 'i');
whereFilter =   {"and": 
                    [
                        {status: {"neq": -1}}, 
                        {createdBy: currentUserId},
                        {"or":
                            [
                                {title: { like: keywordFilter} },
                                {message: { like: keywordFilter} }
                            ]
                        }
                    ]
                };
} else {
  whereFilter = {status: {"neq": -1}, createdBy: currentUserId};
}



Alerts.find({where: whereFilter, include: [{relation: 'alertTypes'}], order: ["status ASC", "createdAt DESC"]}, function (err, alerts) {

});

如果您使用的是Mongo3.2或更高版本,则可以使用$lookup,其工作原理类似于SQL的左外部联接。谢谢查找正在工作。是否有任何方法可以从环回mongo查询而不是这些聚合函数中获取?即使使用Mongoose,您也需要使用聚合来执行查找,如果这是您的意思的话。