在单独的集合中查找具有匹配UUID的mongodb文档



我有两个集合(包括以下字段(:

  • alertWizard.alertId(CRUD警报的UI元素(
  • alertRules.id(生成警报的技术元素(

每个alertWizard.alertId都应该匹配一个alertRules.id,反之亦然。

我需要查找两个集合中没有匹配alertWizard.alertId的alertRules.id的所有实例。

但即使是简单的聚合似乎也不起作用(使用Studio3T聚合工具(:

use myMongoDb;
db.getCollection("alertsWizard").aggregate(
[
{
"$match" : {
"from" : "alertRules",
"localField" : "$alertId",
"foreignField" : "id",
"as" : "matchingAlerts"
}
}
],
{
"allowDiskUse" : false
}
);

我可以看到它从本地集合中提取所有文档,但在foreign/from集合中找不到任何匹配项。我已经手动确认了确实有匹配,还有一些孤立的巫师和规则。

有人能帮我至少理解聚合,这样我就可以看到比赛了吗。那我就可以了例外情况。

阶段是$lookup而不是$match

此处的文档

db.getCollection("alertsWizard").aggregate(
[
{
"$lookup" : {
"from" : "alertRules",
"localField" : "$alertId",
"foreignField" : "id",
"as" : "matchingAlerts"
}
}
],
{
"allowDiskUse" : false
}
);

相关内容

  • 没有找到相关文章

最新更新