У меня есть две городские и государственные коллекции следующим образом:
город
{
"_id" : ObjectId("5be385fdb9ee9a25f7e418a9"),
"ID" : "1",
"Nome" : "Afonso Cláudio",
"Estado" : "8"
},{
"_id" : ObjectId("5be385fdb9ee9a25f7e418aa"),
"ID" : "2",
"Nome" : "Água Doce do Norte",
"Estado" : "8"
}
состояние
{
"_id" : ObjectId("5be385feb9ee9a25f7e42e65"),
"ID" : "1",
"Sigla" : "AC",
"Nome" : "Acre"
}
Я хочу создать новую коллекцию из этих двух. Для этого я написал следующий запрос:
db.cidades.aggregate ([
{ $lookup: { from:"estados",localField: "Estado",foreignField: "ID",as:"estado"}},
{ $sort : { Estado:1,Nome:1 }},
{ $project:{ "ID":0,"_id":0,"Estado":0,"estado.ID":0,"estado._id":0}},
{ $addFields: { "cnpj": null,"legislacao": [] }},
{ $out : "municipios" }
]).pretty()
Что дало мне следующий результат:
{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"estado" : [
{
"Sigla" : "AC",
"Nome" : "Acre"
}
],
"cnpj" : null,
"legislacao" : []
}
Что бы мне действительно хотелось, так это то, что конечный результат выглядит следующим образом:
{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"Sigla" : "AC",
"Nome" : "Acre"
"cnpj" : null,
"legislacao" : []
}
или
{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"estado" :{
"Sigla" : "AC",
"Nome" : "Acre"
}
,
"cnpj" : null,
"legislacao" : []
}
Какие изменения я должен внести в запрос, чтобы получить приведенный выше результат?