SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Mecanismo de busca com
Node.js + MongoDB
Apresentação
Conceitos Fundamentais
MongoDB
Node.js
Referências
Dúvidas
Cronograma
Ciência da Computação
Computação Móvel
Dev, analista, gerente...
11 anos programando
- 7 anos com mecanismos de busca
- 3 mecanismos no ar
- inúmeros projetos
Conceitos Fundamentais
Fonte de Dados
Classificação
Indexação
Pesquisa
Atualização
Conceitos
Fundamentais
1. Fonte de
Dados
- Carga de dados
- crawling
- SQL
2. Classificação
- redes neurais
- machine learning
- rankings
- NoSQL?
3. Indexação
- normalização
- tagging
- inverted index
- stopwords, sinônimos
- NoSQL!
4. Pesquisa
- normalização
- tagging
- inverted index
- stopwords, sinônimos
- resultados
5. Atualização
- index rebuild?
- live update?
- Redis…
- MongoDB!
MongoDB
MongoDB
Onde baixo?
http://mongodb.org
O que mais vou precisar?
GUI Mongo: http://studio3t.com (opcional)
- free
- tenha RAM de sobra
- orientado a documentos
- schemaless
- array fields
- indexed array fields
MongoDB
Subindo servidor:
C:mongobin> mongod --dbpath C:nodejssearchenginedata
MongoDB
Subindo o cliente:
C:mongobin> mongo
MongoDB
Carga de dados:
use searchengine
custArray = [{"nome":"Luiz Júnior", "profissao":"Professor",
"tags":["LUIZ","JUNIOR","PROFESSOR"]}, {"nome":"Luiz
Fernando", "profissao":"Autor", "tags":
["LUIZ","FERNANDO","AUTOR"]}, {"nome":"Luiz Tools",
"profissao":"Blogueiro", "tags": ["LUIZ","TOOLS","BLOGUEIRO"]},
{"nome":"Luiz Duarte", "profissao":"Blogueiro", "tags":
["LUIZ","DUARTE","BLOGUEIRO"]}]
db.customers.insert(custArray);
MongoDB
Índice:
db.customers.createIndex({"tags":1});
Node.js
Node.js
Vantagens:
multiplataforma, veloz, escala, velocidade e baixo custo, web
full-stack, assíncrono, V8 Engine, Javascript
Desvantagens:
escalonamento vertical
Cenários de Usos:
APIs, bots, mensageria, real-time, games, collaboration tools
Node.js
Quem usa?
Netflix, PayPal, LinkedIn, Groupon, Dow Jones, GoDaddy, 4all, etc
Tecnologias Concorrentes:
Go, Elixir e Scala
Node.js
Onde baixo?
http://nodejs.org
Como verifico se está funcionando?
node -v
O que mais vou precisar?
sudo npm install -g express
sudo npm install -g express-generator
Visual Studio Code (opcional)
https://code.visualstudio.com/download
Node.js
Criando um projeto Express:
C:nodejssearchengine> express -e --git
Executando um projeto Express:
npm install
npm start
Acessando um projeto Express:
http://localhost:3000
Node.js
customizando index.ejs:
<center>
<h1> Search Engine </h1>
<form action="/search" method="get">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
</center>
Node.js
Dependência MongoDB:
npm install -S mongodb
Teste para ver se funciona:
router.get('/search', function (req, res, next) {
var db = require('mongodb');
db.connect("mongodb://localhost/searchengine")
.then(conn => console.log('funcionou!'))
.catch(err => console.log(err))
})
Node.js
customizando index.ejs:
<% if(results && list.length > 0){ %>
<b>Resultados da pesquisa por <%= search %>:</b>
<ul>
<% list.forEach(function(item){ %>
<li><%= item.nome %> (<%= item.profissao%>)</li>
<% }); %>
</ul>
<% } else if(search){ %>
<b>Nenhum resultado encontrado para <%= search %></b>
<% } %>
Node.js
customizando index.js /:
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', { results: false, list: [], search: '', title: 'SE' })
})
Node.js
customizando index.js /search:
/* GET search page. */
router.get('/search', function (req, res, next) {
var searchParams = req.query.query.toUpperCase().split(' ')
var db = require('mongodb')
db.connect('mongodb://localhost/searchengine2')
.then(conn => conn.collection('customers').find({ tags: { $all:
searchParams } }).toArray())
.then(docs => res.render('index', { results: true, search:
req.query.query, list: docs, title: 'SE' }))
.catch(err => console.log(err))
})
Referências
Dúvidas?
Obrigado!

Mais conteúdo relacionado

Mais procurados

Glusterfs session #2 1 layer above disk filesystems
Glusterfs session #2   1 layer above disk filesystemsGlusterfs session #2   1 layer above disk filesystems
Glusterfs session #2 1 layer above disk filesystemsPranith Karampuri
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKMarian Marinov
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumScyllaDB
 
Modeling with Hadoop kdd2011
Modeling with Hadoop kdd2011Modeling with Hadoop kdd2011
Modeling with Hadoop kdd2011Milind Bhandarkar
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerShu Sugimoto
 
Openstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsOpenstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsThomas Morin
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConJérôme Petazzoni
 
NiFi Developer Guide
NiFi Developer GuideNiFi Developer Guide
NiFi Developer GuideDeon Huang
 
F5 OpenShift Workshop
F5 OpenShift WorkshopF5 OpenShift Workshop
F5 OpenShift WorkshopTyler Hatton
 
A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfLuciano Resende
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with AnsibleIvan Serdyuk
 
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 2408 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24legasu zemene
 
IBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking FlowIBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking FlowSandeep Patil
 
Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Murat Mukhtarov
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX, Inc.
 
NETWORK FILE SYSTEM
NETWORK FILE SYSTEMNETWORK FILE SYSTEM
NETWORK FILE SYSTEMRoshan Kumar
 
WAFFLE - A Web Application Firewall that defies rules
WAFFLE - A Web Application Firewall that defies rulesWAFFLE - A Web Application Firewall that defies rules
WAFFLE - A Web Application Firewall that defies rulesDimitris Gkizanis
 

Mais procurados (20)

Glusterfs session #2 1 layer above disk filesystems
Glusterfs session #2   1 layer above disk filesystemsGlusterfs session #2   1 layer above disk filesystems
Glusterfs session #2 1 layer above disk filesystems
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Modeling with Hadoop kdd2011
Modeling with Hadoop kdd2011Modeling with Hadoop kdd2011
Modeling with Hadoop kdd2011
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting router
 
Openstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsOpenstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNs
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
 
NiFi Developer Guide
NiFi Developer GuideNiFi Developer Guide
NiFi Developer Guide
 
F5 OpenShift Workshop
F5 OpenShift WorkshopF5 OpenShift Workshop
F5 OpenShift Workshop
 
A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdf
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
 
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 2408 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24
08 ip oc304 2_e1_1 zxr10 m6000 bgp configuration 24
 
IBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking FlowIBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking Flow
 
Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
NETWORK FILE SYSTEM
NETWORK FILE SYSTEMNETWORK FILE SYSTEM
NETWORK FILE SYSTEM
 
WAFFLE - A Web Application Firewall that defies rules
WAFFLE - A Web Application Firewall that defies rulesWAFFLE - A Web Application Firewall that defies rules
WAFFLE - A Web Application Firewall that defies rules
 

Semelhante a Mecanismo de Busca com Node.js + MongoDB

Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBLuiz Duarte
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDBLuiz Duarte
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSMatheus Donizete
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarFilipe Falcão
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSRomulo Fagundes
 
Programação para Web II: NodeJS
Programação para Web II:  NodeJSProgramação para Web II:  NodeJS
Programação para Web II: NodeJSAlex Camargo
 
Mongo DB
Mongo DBMongo DB
Mongo DBdist_bp
 

Semelhante a Mecanismo de Busca com Node.js + MongoDB (20)

Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDB
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDB
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Palestra parse
Palestra parsePalestra parse
Palestra parse
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
Mongo + php
Mongo + phpMongo + php
Mongo + php
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
 
Testing node.js
Testing node.jsTesting node.js
Testing node.js
 
Search Plugins para Firefox
Search Plugins para FirefoxSearch Plugins para Firefox
Search Plugins para Firefox
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Programação para Web II: NodeJS
Programação para Web II:  NodeJSProgramação para Web II:  NodeJS
Programação para Web II: NodeJS
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 

Mais de Luiz Duarte

Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBLuiz Duarte
 
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...Luiz Duarte
 
Team Building: Passo a Passo
Team Building: Passo a PassoTeam Building: Passo a Passo
Team Building: Passo a PassoLuiz Duarte
 
Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Luiz Duarte
 
Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Luiz Duarte
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Luiz Duarte
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Luiz Duarte
 
Curso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoCurso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoLuiz Duarte
 
Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Luiz Duarte
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Luiz Duarte
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Luiz Duarte
 
Carreira em Agilidade
Carreira em AgilidadeCarreira em Agilidade
Carreira em AgilidadeLuiz Duarte
 
Gamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeGamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeLuiz Duarte
 
Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Luiz Duarte
 
Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Luiz Duarte
 
Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Luiz Duarte
 
Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Luiz Duarte
 
Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Luiz Duarte
 
Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Luiz Duarte
 
Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Luiz Duarte
 

Mais de Luiz Duarte (20)

Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDB
 
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
 
Team Building: Passo a Passo
Team Building: Passo a PassoTeam Building: Passo a Passo
Team Building: Passo a Passo
 
Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07
 
Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03
 
Curso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoCurso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - Introdução
 
Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06
 
Carreira em Agilidade
Carreira em AgilidadeCarreira em Agilidade
Carreira em Agilidade
 
Gamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeGamification em Modelos de Maturidade
Gamification em Modelos de Maturidade
 
Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20
 
Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19
 
Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18
 
Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17
 
Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16
 
Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15
 
Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14
 

Mecanismo de Busca com Node.js + MongoDB