在单独的集合中找到 mongodb 个具有匹配 UUID 的文档
find mongodb documents with matching UUIDs in separate collections
我有两个集合(包括以下字段):
- 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
文档here
db.getCollection("alertsWizard").aggregate(
[
{
"$lookup" : {
"from" : "alertRules",
"localField" : "$alertId",
"foreignField" : "id",
"as" : "matchingAlerts"
}
}
],
{
"allowDiskUse" : false
}
);
我有两个集合(包括以下字段):
- 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
文档here
db.getCollection("alertsWizard").aggregate(
[
{
"$lookup" : {
"from" : "alertRules",
"localField" : "$alertId",
"foreignField" : "id",
"as" : "matchingAlerts"
}
}
],
{
"allowDiskUse" : false
}
);