MongoDb: pesquisa de agregação $ com filtragem de documentos estrangeiros
Dadas algumas coleções:
1.- USUÁRIOS
{
name: ...
id: ...
city: ...
age: ...
otherdata: ...
}
2.- PETS
{
name: ...
owner: ...
type: ...
age: ...
}
Estou tentando usar a agregação com $ lookup para criar um conjunto de objetos que representam usuários com seus animais de estimação:
collectionusers.aggregate([
{
$lookup: {
from: "pets",
localField: "id",
foreignField: "owner",
as: "pets"
}
}
]);
Mas eu gostaria de adicionar um filtro para que apenas animais com mais de 1 ano sejam adicionados a cada usuário (usando a idade do campo dentro dos objetos).
O problema é que adicionar $ match na agregação não funciona porque filtra usuários sem animais de estimação antigos e quero que os usuários estejam lá, mesmo que não tenham animais de estimação.
Na verdade, eu também estou tentando obter apenas o animal de estimação mais antigo de cada usuário da mesma maneira e também não encontrei a fórmula.
Alguma maneira de executar esta ação na agregação?
Claro, atualmente estou fazendo isso depois, nos objetos retornados.
Desde já, obrigado.