Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Banco de dados»NoSql»Processamento de grafos nativo com MongoDB

    Processamento de grafos nativo com MongoDB

    Jhonathan SoaresBy Jhonathan Soares27 de abril de 20171 Min Read NoSql
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    O recém-lançado MongoDB 3.4 está cheio de novos recursos poderosos. Em particular, existem 27 novos conceitos de agregação, dos quais os mais interessantes na minha opnião é o $ graphLookup. Neste artigo, mostrarei como $graphLookup funciona e no que ele é útil.

    $graphLookup é um novo estágio de framework de agregação que pesquisa recursivamente através de uma coleção através de processamento em algoritmos baseados em grafos:

    {
       $graphLookup: {
          from: <collection>,
          startWith: <expression>,
          connectFromField: <string>,
          connectToField: <string>,
          as: <string>,
          maxDepth: <number>,
          depthField: <string>,
          restrictSearchWithMatch: <document>
       }
    }
    

    Para um exemplo concreto, vamos inserir 5 documentos em uma coleção:

    db.customers.insertMany([
      { _id: 1, name: 'Luke Skywalker', friends: [2, 3] },
      { _id: 2, name: 'Han Solo', friends: [1, 3, 4] },
      { _id: 3, name: 'Leia Organa', friends: [1, 3] },
      { _id: 4, name: 'Lando Calrissian', friends: [2, 5] },
      { _id: 5, name: 'Tendra Risant', friends: [4] }
    ]);

     

    Luke Skywalker possui 2 amigos, Han e Leia. Mas como você determina quem são o segundo nível (amigos de amigos) de Luke? É aí que $ graphLookup entra:

    db.customers.aggregate([
      { $match: { _id: 1 } }, // Only look at Luke Skywalker
      {
        $graphLookup: {
          from: 'customers', // Use the customers collection
          startWith: '$friends', // Start looking at the document's `friends` property
          connectFromField: 'friends', // A link in the graph is represented by the friends property...
          connectToField: '_id', // ... pointing to another customer's _id property
          maxDepth: 1, // Only recurse one level deep
          as: 'connections' // Store this in the `connections` property
        }
      }
    ]);

     

    Descubra padrões e descubra conexões. O operador $ graphLookup permite o processamento de gráficos nativos no MongoDB para que você possa navegar com eficiência árvores, gráficos e dados hierárquicos sem depender de um banco de dados orientados à grafos

    Você ainda pode aprender mais sobre esta e outras funcionalidades neste webnar gratuito.

    Um grande abraço a todos!

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples

    NoSql 7 de fevereiro de 20255 Mins Read

    Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL

    NoSql Sql 14 de janeiro de 20257 Mins Read

    Entendendo os diferentes tipos de locks em bancos de dados e como evitá-los

    NoSql Sql 2 de julho de 20248 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile