Я пытаюсь создать агрегированный конвейер, в котором я знаю, что последнее совпадение не даст результата, но я все еще хочу получить то, что я получил, пока там. Знаете ли вы, как я могу это получить?
Запрос агрегации:
var pipeline = [
{
$match:{
Cod: '5'
}
},
{
$unwind: '$Orgaos'
},
{
$match:{
'Orgaos.Siglas': 'PR'
}
},
{
$lookup:{
'from': 'Varas',
'localField': 'Orgaos.Varas',
'foreignField': '_id',
'as': 'Varas'
}
},
{
$unwind: '$Varas'
},
{
$match:{
'Varas.CodVara': '9001'
}
}
]
db.getCollection('Tribunais').aggregate(pipeline)
Результат, если $ match найдет что-нибудь, будет похож на:
{
"_id" : ObjectId("5c335bdd20681573e41878ad"),
"Nome" : "TRT",
"Cod" : "5",
"Orgaos" : {
"Orgao" : "09",
"Siglas" : [
"PR"
],
"Varas" : [ ]
},
"Varas" : {
"_id" : ObjectId("5cf55fc2cb865b5038310e0c"),
"CodVara" : "0001",
"NomeVara" : "01ª VARA DO TRABALHO DE CURITIBA",
"Comarca" : "CURITIBA",
"Uf" : "PR"
}
}
И если он ничего не находит, я ожидаю получить что-то вроде:
{
"_id" : ObjectId("5c335bdd20681573e41878ad"),
"Nome" : "TRT",
"Cod" : "5",
"Orgaos" : {
"Orgao" : "09",
"Siglas" : [
"PR"
],
"Varas" : [ ]
},
"Varas" : { }
}
Или как:
{
"_id" : ObjectId("5c335bdd20681573e41878ad"),
"Nome" : "TRT",
"Cod" : "5",
"Orgaos" : {
"Orgao" : "09",
"Siglas" : [
"PR"
],
"Varas" : [ ]
},
"Varas" : Null
}
ткс
РЕДАКТИРОВАТЬ
Трибуна
{
"_id" : ObjectId("5c335bdd20681573e41878ad"),
"Nome" : "TRT",
"Cod" : "5",
"Orgaos" : [
{
"Orgao" : "23",
"Siglas" : [
"MT"
],
"Varas" : [
ObjectId("5cf55fc5cb865b503831104e"),
ObjectId("5cf55fc5cb865b503831104f"),
ObjectId("5cf55fc5cb865b5038311050"),
ObjectId("5cf55fc5cb865b5038311051"),
ObjectId("5cf55fc5cb865b5038311052"),
ObjectId("5cf55fc5cb865b5038311053"),
ObjectId("5cf55fc5cb865b5038311054"),
ObjectId("5cf55fc5cb865b5038311055"),
ObjectId("5cf55fc5cb865b5038311056"),
ObjectId("5cf55fc5cb865b5038311057"),
ObjectId("5cf55fc5cb865b5038311058"),
ObjectId("5cf55fc5cb865b5038311059"),
ObjectId("5cf55fc5cb865b503831105a"),
ObjectId("5cf55fc5cb865b503831105b"),
ObjectId("5cf55fc5cb865b503831105c"),
ObjectId("5cf55fc5cb865b503831105d"),
ObjectId("5cf55fc5cb865b503831105e"),
ObjectId("5cf55fc5cb865b503831105f"),
ObjectId("5cf55fc5cb865b5038311060"),
ObjectId("5cf55fc5cb865b5038311061"),
ObjectId("5cf55fc5cb865b5038311062"),
ObjectId("5cf55fc5cb865b5038311063"),
ObjectId("5cf55fc5cb865b5038311064"),
ObjectId("5cf55fc5cb865b5038311065"),
ObjectId("5cf55fc5cb865b5038311066"),
ObjectId("5cf55fc5cb865b5038311067")
]
},
{
"Orgao" : "24",
"Siglas" : [
"MS"
],
"Varas" : [
ObjectId("5cf55fc5cb865b5038311068"),
ObjectId("5cf55fc5cb865b5038311069"),
ObjectId("5cf55fc5cb865b503831106a"),
ObjectId("5cf55fc5cb865b503831106b"),
ObjectId("5cf55fc5cb865b503831106c"),
ObjectId("5cf55fc5cb865b503831106d"),
ObjectId("5cf55fc5cb865b503831106e"),
ObjectId("5cf55fc5cb865b503831106f"),
ObjectId("5cf55fc5cb865b5038311070"),
ObjectId("5cf55fc5cb865b5038311071"),
ObjectId("5cf55fc5cb865b5038311072"),
ObjectId("5cf55fc5cb865b5038311073"),
ObjectId("5cf55fc5cb865b5038311074"),
ObjectId("5cf55fc5cb865b5038311075"),
ObjectId("5cf55fc5cb865b5038311076"),
ObjectId("5cf55fc5cb865b5038311077"),
ObjectId("5cf55fc5cb865b5038311078"),
ObjectId("5cf55fc5cb865b5038311079"),
ObjectId("5cf55fc5cb865b503831107a"),
ObjectId("5cf55fc5cb865b503831107b"),
ObjectId("5cf55fc5cb865b503831107c"),
ObjectId("5cf55fc5cb865b503831107d"),
ObjectId("5cf55fc5cb865b503831107e"),
ObjectId("5cf55fc5cb865b503831107f"),
ObjectId("5cf55fc5cb865b5038311080"),
ObjectId("5cf55fc5cb865b5038311081")
]
}
]
}
Варас
{
"_id" : ObjectId("5cf55fc5cb865b503831104e"),
"CodVara" : "0001",
"NomeVara" : "1ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831104f"),
"CodVara" : "0002",
"NomeVara" : "2ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311050"),
"CodVara" : "0003",
"NomeVara" : "3ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311051"),
"CodVara" : "0004",
"NomeVara" : "4ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311052"),
"CodVara" : "0005",
"NomeVara" : " 5ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311053"),
"CodVara" : "0006",
"NomeVara" : "6ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311054"),
"CodVara" : "0007",
"NomeVara" : "7ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311055"),
"CodVara" : "0008",
"NomeVara" : "8ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311056"),
"CodVara" : "0009",
"NomeVara" : " 9ª Vara do Trabalho de Cuiabá",
"Comarca" : "Cuiabá",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311057"),
"CodVara" : "0021",
"NomeVara" : " 1ª Vara do Trabalho de Rondonópolis",
"Comarca" : "Rondonópolis",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311058"),
"CodVara" : "0022",
"NomeVara" : "2ª Vara do Trabalho de Rondonópolis",
"Comarca" : "Rondonópolis",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311059"),
"CodVara" : "0026",
"NomeVara" : "Vara do Trabalho de Barra do Garças",
"Comarca" : "Barra do Garças",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105a"),
"CodVara" : "0031",
"NomeVara" : "Vara do Trabalho de Cáceres",
"Comarca" : "Cáceres",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105b"),
"CodVara" : "0036",
"NomeVara" : "Vara do Trabalho de Sinop",
"Comarca" : "Sinop",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105c"),
"CodVara" : "0041",
"NomeVara" : "Vara do Trabalho de Colíder",
"Comarca" : "Colíder",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105d"),
"CodVara" : "0046",
"NomeVara" : "Vara do Trabalho de Alta Floresta",
"Comarca" : "Alta Floresta",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105e"),
"CodVara" : "0051",
"NomeVara" : "Vara do Trabalho de Tangará da Serra",
"Comarca" : "Tangará da Serra",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831105f"),
"CodVara" : "0056",
"NomeVara" : "Vara do Trabalho de Diamantino",
"Comarca" : "Diamantino",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311060"),
"CodVara" : "0061",
"NomeVara" : "Vara do Trabalho de São Félix do Araguaia",
"Comarca" : "São Félix do Araguaia",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311061"),
"CodVara" : "0066",
"NomeVara" : "Vara do Trabalho de Sorriso",
"Comarca" : "Sorriso",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311062"),
"CodVara" : "0071",
"NomeVara" : "Vara do Trabalho de Jaciara",
"Comarca" : "Jaciara",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311063"),
"CodVara" : "0076",
"NomeVara" : " Vara do Trabalho de Primavera do Leste",
"Comarca" : "Primavera do Leste",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311064"),
"CodVara" : "0081",
"NomeVara" : "Vara do Trabalho de Juína",
"Comarca" : "Juína",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311065"),
"CodVara" : "0086",
"NomeVara" : "Vara do Trabalho de Água Boa",
"Comarca" : "Água Boa",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311066"),
"CodVara" : "0091",
"NomeVara" : "Vara do Trabalho de Mirassol D'Oeste",
"Comarca" : "Mirassol D'Oeste",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311067"),
"CodVara" : "0096",
"NomeVara" : "Vara do Trabalho de Pontes e Lacerda",
"Comarca" : "Pontes e Lacerda",
"Uf" : "MT"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311068"),
"CodVara" : "0001",
"NomeVara" : "1ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311069"),
"CodVara" : "0002",
"NomeVara" : "2ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106a"),
"CodVara" : "0003",
"NomeVara" : "3ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106b"),
"CodVara" : "0004",
"NomeVara" : "4ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106c"),
"CodVara" : "0005",
"NomeVara" : "5ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106d"),
"CodVara" : "0006",
"NomeVara" : "6ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106e"),
"CodVara" : "0007",
"NomeVara" : "7ª vara do trabalho de campo grande",
"Comarca" : "Campo Grande",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831106f"),
"CodVara" : "0021",
"NomeVara" : "1ª vara do trabalho de dourados",
"Comarca" : "Dourados",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311070"),
"CodVara" : "0022",
"NomeVara" : "2ª vara do trabalho de dourados",
"Comarca" : "Dourados",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311071"),
"CodVara" : "0031",
"NomeVara" : "vara do trabalho de aquidauana",
"Comarca" : "Aquidauana",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311072"),
"CodVara" : "0036",
"NomeVara" : "vara do trabalho de amambai",
"Comarca" : "Amambai",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311073"),
"CodVara" : "0041",
"NomeVara" : "vara do trabalho de corumbá",
"Comarca" : "Corumbá",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311074"),
"CodVara" : "0046",
"NomeVara" : "1º vara do trabalho de coxim",
"Comarca" : "Coxim",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311075"),
"CodVara" : "0051",
"NomeVara" : "vara do trabalho de mundo novo",
"Comarca" : "Mundo Novo",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311076"),
"CodVara" : "0056",
"NomeVara" : "vara do trabalho de nova andradina",
"Comarca" : "Nova Andradina",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311077"),
"CodVara" : "0061",
"NomeVara" : "vara do trabalho de paranaíba",
"Comarca" : "Paranaíba",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311078"),
"CodVara" : "0066",
"NomeVara" : "vara do trabalho de ponta porã",
"Comarca" : "Ponta Porã",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311079"),
"CodVara" : "0071",
"NomeVara" : "1ª vara do trabalho de três lagoas",
"Comarca" : "Três Lagoas",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107a"),
"CodVara" : "0072",
"NomeVara" : "2ª vara do trabalho de três lagoas",
"Comarca" : "Três Lagoas",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107b"),
"CodVara" : "0076",
"NomeVara" : "vara do trabalho de jardim",
"Comarca" : "Jardim",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107c"),
"CodVara" : "0081",
"NomeVara" : "vara do trabalho de são gabriel do oeste",
"Comarca" : "São Gabriel Do Oeste",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107d"),
"CodVara" : "0086",
"NomeVara" : "vara do trabalho de naviraí",
"Comarca" : "Naviraí",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107e"),
"CodVara" : "0091",
"NomeVara" : "vara do trabalho de rio brilhante",
"Comarca" : "Rio Brilhante",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b503831107f"),
"CodVara" : "0096",
"NomeVara" : "vara do trabalho de bataguassu",
"Comarca" : "Bataguassu",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311080"),
"CodVara" : "0101",
"NomeVara" : "vara do trabalho de cassilândia",
"Comarca" : "Cassilândia",
"Uf" : "MS"
},
{
"_id" : ObjectId("5cf55fc5cb865b5038311081"),
"CodVara" : "0106",
"NomeVara" : "vara do trabalho de fátima do sul",
"Comarca" : "Fátima Do Sul",
"Uf" : "MS"
}