我有两个数据库。
我正在尝试汇总一个集合。我需要使用localField作为用户数据库中的用户ID进行$ lookup。
我该怎么做?
在猫鼬中,我可以使用populate并指定要使用的模型,如下所示:
_launchURL(String toMailId, String subject, String body) async {
var url = 'mailto:$toMailId?subject=$subject&body=$body';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
但是在$ lookup中,我看不到这样的选择吗?
问题开始的示例:
.populate({
path: 'user',
select: 'name',
model: UserModelFromDifferentDB
})
答案 0 :(得分:0)
据我所知,聚合不可能在两个数据库之间进行$ lookup。 但是,如果您可以执行一些逻辑代码,那么“ getSiblingDB()”将为您提供帮助。
first_DB_data = db.getSiblingDB('students').bca.find() //'students' is DB,'bca' is collection
second_DB_data = db.getSiblingDB('marks').finals.find() //'marks' is DB,'finals' is collection
从两个数据库中获取所有记录后,您可以执行代码以获取所需的输出。 现在,您拥有两个数据库中的所有记录,您可以根据任何条件过滤掉数据。 希望对您有帮助