Aggregation em MongoDB











up vote
0
down vote

favorite












I have two city and state Collections as follows:



city



{
"_id" : ObjectId("5be385fdb9ee9a25f7e418a9"),
"ID" : "1",
"Nome" : "Afonso Cláudio",
"Estado" : "8"
},{
"_id" : ObjectId("5be385fdb9ee9a25f7e418aa"),
"ID" : "2",
"Nome" : "Água Doce do Norte",
"Estado" : "8"
}


state



{
"_id" : ObjectId("5be385feb9ee9a25f7e42e65"),
"ID" : "1",
"Sigla" : "AC",
"Nome" : "Acre"
}


I want to create a new collection from these two. For this I wrote the following query:



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()


Which gave me the following result:



{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"estado" : [
{
"Sigla" : "AC",
"Nome" : "Acre"
}
],
"cnpj" : null,
"legislacao" :
}


What I would really like is the end result looks like this:



{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"Sigla" : "AC",
"Nome" : "Acre"
"cnpj" : null,
"legislacao" :
}


or



{
"_id" : ObjectId("5be5c6407608e1137ab33fe4"),
"Nome" : "Acrelândia",
"estado" :{
"Sigla" : "AC",
"Nome" : "Acre"
}
,
"cnpj" : null,
"legislacao" :
}


What modifications should I make in the query to get the above result?










share|improve this question


























    up vote
    0
    down vote

    favorite












    I have two city and state Collections as follows:



    city



    {
    "_id" : ObjectId("5be385fdb9ee9a25f7e418a9"),
    "ID" : "1",
    "Nome" : "Afonso Cláudio",
    "Estado" : "8"
    },{
    "_id" : ObjectId("5be385fdb9ee9a25f7e418aa"),
    "ID" : "2",
    "Nome" : "Água Doce do Norte",
    "Estado" : "8"
    }


    state



    {
    "_id" : ObjectId("5be385feb9ee9a25f7e42e65"),
    "ID" : "1",
    "Sigla" : "AC",
    "Nome" : "Acre"
    }


    I want to create a new collection from these two. For this I wrote the following query:



    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()


    Which gave me the following result:



    {
    "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
    "Nome" : "Acrelândia",
    "estado" : [
    {
    "Sigla" : "AC",
    "Nome" : "Acre"
    }
    ],
    "cnpj" : null,
    "legislacao" :
    }


    What I would really like is the end result looks like this:



    {
    "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
    "Nome" : "Acrelândia",
    "Sigla" : "AC",
    "Nome" : "Acre"
    "cnpj" : null,
    "legislacao" :
    }


    or



    {
    "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
    "Nome" : "Acrelândia",
    "estado" :{
    "Sigla" : "AC",
    "Nome" : "Acre"
    }
    ,
    "cnpj" : null,
    "legislacao" :
    }


    What modifications should I make in the query to get the above result?










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have two city and state Collections as follows:



      city



      {
      "_id" : ObjectId("5be385fdb9ee9a25f7e418a9"),
      "ID" : "1",
      "Nome" : "Afonso Cláudio",
      "Estado" : "8"
      },{
      "_id" : ObjectId("5be385fdb9ee9a25f7e418aa"),
      "ID" : "2",
      "Nome" : "Água Doce do Norte",
      "Estado" : "8"
      }


      state



      {
      "_id" : ObjectId("5be385feb9ee9a25f7e42e65"),
      "ID" : "1",
      "Sigla" : "AC",
      "Nome" : "Acre"
      }


      I want to create a new collection from these two. For this I wrote the following query:



      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()


      Which gave me the following result:



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "estado" : [
      {
      "Sigla" : "AC",
      "Nome" : "Acre"
      }
      ],
      "cnpj" : null,
      "legislacao" :
      }


      What I would really like is the end result looks like this:



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "Sigla" : "AC",
      "Nome" : "Acre"
      "cnpj" : null,
      "legislacao" :
      }


      or



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "estado" :{
      "Sigla" : "AC",
      "Nome" : "Acre"
      }
      ,
      "cnpj" : null,
      "legislacao" :
      }


      What modifications should I make in the query to get the above result?










      share|improve this question













      I have two city and state Collections as follows:



      city



      {
      "_id" : ObjectId("5be385fdb9ee9a25f7e418a9"),
      "ID" : "1",
      "Nome" : "Afonso Cláudio",
      "Estado" : "8"
      },{
      "_id" : ObjectId("5be385fdb9ee9a25f7e418aa"),
      "ID" : "2",
      "Nome" : "Água Doce do Norte",
      "Estado" : "8"
      }


      state



      {
      "_id" : ObjectId("5be385feb9ee9a25f7e42e65"),
      "ID" : "1",
      "Sigla" : "AC",
      "Nome" : "Acre"
      }


      I want to create a new collection from these two. For this I wrote the following query:



      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()


      Which gave me the following result:



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "estado" : [
      {
      "Sigla" : "AC",
      "Nome" : "Acre"
      }
      ],
      "cnpj" : null,
      "legislacao" :
      }


      What I would really like is the end result looks like this:



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "Sigla" : "AC",
      "Nome" : "Acre"
      "cnpj" : null,
      "legislacao" :
      }


      or



      {
      "_id" : ObjectId("5be5c6407608e1137ab33fe4"),
      "Nome" : "Acrelândia",
      "estado" :{
      "Sigla" : "AC",
      "Nome" : "Acre"
      }
      ,
      "cnpj" : null,
      "legislacao" :
      }


      What modifications should I make in the query to get the above result?







      mongodb-query






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked yesterday









      Israel Zebulon

      1216




      1216





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238016%2faggregation-em-mongodb%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238016%2faggregation-em-mongodb%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          Popular posts from this blog

          Florida Star v. B. J. F.

          Danny Elfman

          Retrieve a Users Dashboard in Tumblr with R and TumblR. Oauth Issues