MongoShell версия 4.0.2
У меня есть 3 коллекции с корреляцией данных между коллекциями
B:
{
"_id" : ObjectId("5b8f83fb520b3ea906ac11d1"),
"X" : "002100367752",
"Z" : "002KV180054605",
}
A:
{
"_id" : ObjectId("5b8f83fa520b3e09e7ac0de1"),
"Y" : "002100367752"
}
C:
{
"_id" : ObjectId("5b8f83fb520b3e0127ac15b9"),
"N" : "002KV180054605",
"Q" : 17,
"W" : 1,
"E" : 35
}
Соединение выглядит так:
Collection A <> Collection B <> Collection C
Только в коллекции B У меня есть ID объектов из всех 3 коллекций
Теперь я хочу подсчитать различное количество объектов в коллекции A, которые связаны через коллекцию B, с объектами из коллекции C, которые имеют определенные параметры.
Это означает, что мой счетчик должен возвращать количество различных объектов из коллекции A, которые могут иметь несколько соединений с объектами из коллекции C
Если я сделаю запрос, как показано ниже, я не получу результатов:
db.B.aggregate([
{
$lookup:
{
from: "A",
localField: "X",
foreignField: "Y",
as: "Acc"
}
},
{
$match: { "Acc": { $ne: [] } }
},
{
$lookup:
{
from: "C",
localField: "Z",
foreignField: "N",
as: "Con"
}
},
{
$match: { "Con": { Q: 1, W: 1, E: 9 } }
}
])
Кроме того, я не знаю, как подсчитать для этого запроса