Localizando uma Agulha: usando MongoDB para dados GeolocalizadosCaliel Costa
A recomendação de conteúdo para usuários é um dos pontos principais no Superplayer. Desde o inicio do ano criamos uma estrutura de geolocalização utilizando MongoDB para selecionar Playlists e propagandas para os usuários. No meio do caminho algumas coisas não funcionaram muito bem, mas apreendemos muito desde então e nesta palestra vou compartilhar os principais pontos.
Link: http://blog.calielcosta.com/2015/07/31/localizando-uma-agulha-usando-mongodb-para-dados-geolocalizados/
MongoDB - Performance e Escalabilidade para aplicações webRafael Nunes
O documento discute como o MongoDB fornece escalabilidade e desempenho para aplicações web. Ele descreve MongoDB como um banco de dados orientado a documentos que armazena objetos JSON/BSON de forma dinâmica e fornece alta performance em leituras e escritas através de replicação e sharding automático. O documento também discute como o MongoDB se compara ao modelo relacional tradicional e fornece exemplos de empresas que usam MongoDB.
Usando mongo db com o aggregation Framework para dados geolocalizadostdc-globalcode
A recomendação de conteúdo para usuários é um dos pontos principais no Superplayer. Desde o início do ano criamos uma estrutura de geolocalização utilizando MongoDB para selecionar Playlists e propagandas para os usuários. No meio do caminho algumas coisas não funcionaram muito bem, mas apreendemos muito desde então e nesta palestra vamos compartilhar os principais pontos.
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...tdc-globalcode
O documento apresenta uma comparação entre os pacotes Sequelize e Bookshelf, que são bibliotecas ORM para Node.js para bancos de dados relacionais. O Sequelize suporta mais bancos de dados e possui uma configuração e uso mais simples, enquanto o Bookshelf requer plugins adicionais e tem uma documentação mais avançada. Ambos permitem consultas, inclusão, atualização e exclusão de dados, bem como operações SQL nativas e procedimentos armazenados.
Este documento fornece um guia sobre programação espacial e ferramentas para trabalhar com dados geoespaciais, incluindo bancos de dados espaciais como PostgreSQL e PostGIS, bibliotecas como GeoRuby, e clientes como OpenLayers. Ele também contém exemplos de código Ruby para armazenar e consultar dados espaciais.
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
Slides da Palestra apresentada na Trilha Banco de Dados do The Developers Conference 2016 - São Paulo.
A palestra aborda os principais conceitos sobre Time series database (TSDB), e demonstra como utilizar a stack TICK (Telegraf, InfluxDb, Conograph, Kapacitor) da InfluxData para resolver problemas de monitoria de dados em grande escala, gerando gráficos e alertas em tempo real.
Localizando uma Agulha: usando MongoDB para dados GeolocalizadosCaliel Costa
A recomendação de conteúdo para usuários é um dos pontos principais no Superplayer. Desde o inicio do ano criamos uma estrutura de geolocalização utilizando MongoDB para selecionar Playlists e propagandas para os usuários. No meio do caminho algumas coisas não funcionaram muito bem, mas apreendemos muito desde então e nesta palestra vou compartilhar os principais pontos.
Link: http://blog.calielcosta.com/2015/07/31/localizando-uma-agulha-usando-mongodb-para-dados-geolocalizados/
MongoDB - Performance e Escalabilidade para aplicações webRafael Nunes
O documento discute como o MongoDB fornece escalabilidade e desempenho para aplicações web. Ele descreve MongoDB como um banco de dados orientado a documentos que armazena objetos JSON/BSON de forma dinâmica e fornece alta performance em leituras e escritas através de replicação e sharding automático. O documento também discute como o MongoDB se compara ao modelo relacional tradicional e fornece exemplos de empresas que usam MongoDB.
Usando mongo db com o aggregation Framework para dados geolocalizadostdc-globalcode
A recomendação de conteúdo para usuários é um dos pontos principais no Superplayer. Desde o início do ano criamos uma estrutura de geolocalização utilizando MongoDB para selecionar Playlists e propagandas para os usuários. No meio do caminho algumas coisas não funcionaram muito bem, mas apreendemos muito desde então e nesta palestra vamos compartilhar os principais pontos.
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...tdc-globalcode
O documento apresenta uma comparação entre os pacotes Sequelize e Bookshelf, que são bibliotecas ORM para Node.js para bancos de dados relacionais. O Sequelize suporta mais bancos de dados e possui uma configuração e uso mais simples, enquanto o Bookshelf requer plugins adicionais e tem uma documentação mais avançada. Ambos permitem consultas, inclusão, atualização e exclusão de dados, bem como operações SQL nativas e procedimentos armazenados.
Este documento fornece um guia sobre programação espacial e ferramentas para trabalhar com dados geoespaciais, incluindo bancos de dados espaciais como PostgreSQL e PostGIS, bibliotecas como GeoRuby, e clientes como OpenLayers. Ele também contém exemplos de código Ruby para armazenar e consultar dados espaciais.
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
Slides da Palestra apresentada na Trilha Banco de Dados do The Developers Conference 2016 - São Paulo.
A palestra aborda os principais conceitos sobre Time series database (TSDB), e demonstra como utilizar a stack TICK (Telegraf, InfluxDb, Conograph, Kapacitor) da InfluxData para resolver problemas de monitoria de dados em grande escala, gerando gráficos e alertas em tempo real.
O documento discute bancos de dados de séries temporais (TSDB), apresentando o InfluxDB como um exemplo de TSDB open source. Ele descreve como escrever e consultar dados no InfluxDB, incluindo funções, agregações e consultas contínuas. Também discute a stack TICK da InfluxData para coleta, armazenamento e análise de dados de séries temporais.
Pablo Juan é um especialista em MongoDB que apresentará sobre o banco de dados NoSQL MongoDB, incluindo sua história, compreensão, operações CRUD e responderá perguntas.
O documento discute bancos de dados de séries temporais e apresenta o InfluxDB como uma opção popular para armazenar e consultar dados de séries temporais. O InfluxDB oferece alta performance para gravação e leitura de dados, consultas simples e agregação de dados. Ele é usado comumente para monitoramento, análise de métricas e detecção de anomalias.
Apresentação realizada no dia 8/11/2014 no evento TchêLinux Bento Gonçalves edição 2014 - http://bento.tchelinux.org
Falei sobre os conceitos de bases de dados NoSQL, cases, comparações com o modelo relacional, expressões SQL x MongoDB (orientado à documentos), instalação, recursos do MongoDB, operações via console, modelagem (abordagem embedded), driver PHP, anatomia do código PHP, CRUD (Create, Read, Update and Delete), ObjectId, operadores, segurança, persistência de objetos, tratamento de arrays (documentos aninhados), índices (performance), projeção, agregação, hospedagem, ferramentas de administração e programa de certificação.
O documento apresenta uma introdução ao banco de dados MongoDB, descrevendo-o como um banco de dados não relacional orientado a documentos, de alto desempenho, flexível e open source. Também discute porque Python e Django são boas opções para trabalhar com MongoDB, demonstrando alguns de seus recursos como modelagem de documentos, agregações e map reduce.
O documento fornece uma introdução sobre MongoDB, incluindo como instalá-lo, os principais conceitos como coleções e documentos, e comandos básicos como inserir, buscar e atualizar documentos.
O documento resume as principais características e funcionalidades do MongoDB, um banco de dados não relacional, e como utilizá-lo junto com a linguagem Python. O documento discute como modelar e realizar consultas de dados no MongoDB usando Python e módulos como PyMongo e MongoEngine.
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
Este documento resume uma apresentação sobre layouts, estados de visualização e resoluções de tela em aplicativos Windows Store. A apresentação discute como personalizar layouts usando estilos, alterar estados de visualização com o Visual State Manager e lidar com diferentes resoluções de tela. Também fornece exemplos de como alterar cores e bordas selecionadas em uma ListView.
1) O documento introduz MongoDB e Java, comparando SQL e NoSQL, e discutindo os modelos de dados chave-valor, coluna, grafo e documento.
2) Ele também aborda o CAP Theorem, o Java MongoDB Driver e Spring Data MongoDB.
3) Por fim, apresenta um estudo de caso sobre um sistema de cadastro de pratos de comida com comentários.
Você já ouviu falar de banco de dados NoSQL? Já desenvolveu alguma aplicação Java com NoSQL? Nesta palestra iremos estudar um exemplo básico de como utilizar JPA e Spring Data para desenvolver com o banco NoSQL MongoDB.
Desenvolvendo soluções com banco de dados não relacional - MongoDBiMasters
Christiano Anderson apresenta MongoDB, um banco de dados não relacional e orientado a documentos. Ele discute as características e vantagens do MongoDB como alta performance, ser open source e schema free. Exemplos mostram como utilizar MongoDB com linguagens como Python.
O documento resume as principais características e conceitos do MongoDB, um banco de dados NoSQL orientado a documentos. Em menos de 3 frases:
O documento discute as principais funcionalidades e conceitos do MongoDB, incluindo sua arquitetura não-relacional baseada em documentos JSON, operações básicas como insert, find, update e remove, além de exemplos demonstrando o mapeamento entre conceitos relacionais e não-relacionais.
O documento apresenta Christiano Anderson, um especialista em MongoDB. Ele descreve o que é MongoDB, como é usado por empresas, as linguagens de programação suportadas, e como trabalhar com MongoDB usando Python e Django.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo. rodrigorahman
O documento discute como o framework AKKA pode ser usado para resolver problemas de desempenho em uma consulta de pacotes de viagem. A solução proposta é usar AKKA para executar consultas de destinos de viagem em paralelo, armazenando resultados em cache para respostas mais rápidas. Isso reduziu o tempo de resposta de 50 segundos para 18 segundos para 30 destinos.
Dividindo para conquistar: microservicos com o jeitinho .NETtdc-globalcode
O documento discute a arquitetura de microsserviços da plataforma Superplayer para lidar com escalabilidade. A solução envolve dividir funcionalidades complexas em vários serviços independentes e stateless chamados de "Beets" que se comunicam através de APIs. Isso permite escalar horizontalmente adicionando mais instâncias à medida que o tráfego aumenta.
O documento apresenta uma introdução ao banco de dados MongoDB, descrevendo suas principais características como armazenamento de documentos JSON, consulta por documento, particionamento em shards e suporte a operações MapReduce.
1) O documento discute SQL e NoSQL, tipos de bancos de dados relacionais e não relacionais.
2) MongoDB é apresentado como um banco de dados não relacional do tipo document store, no qual os dados são armazenados em formato JSON.
3) Relacionamentos um-para-muitos podem ser representados de forma normalizada ou embedded no MongoDB.
O documento apresenta o TypeScript, descrevendo-o como um superconjunto de JavaScript que adiciona tipificação opcional, classes e módulos. Detalha como instalar e compilar o TypeScript, e apresenta recursos como interfaces, classes, módulos e suporte a ES6. Recomenda o uso do TypeScript pelas vantagens desses recursos, mas aponta a necessidade de aprendizado de uma nova linguagem como possível desvantagem.
Entity Framework 7.0 a.k.a Entity Core 1.0Caliel Costa
O documento descreve o Entity Framework Core 1.0, incluindo suas principais funcionalidades como POCO, data annotation e relacionamentos. Ele também discute as mudanças radicais em relação às versões anteriores, como o foco apenas em code first e a disponibilização do código no GitHub. Por fim, apresenta os próximos passos de desenvolvimento e como entrar em contato com o autor.
Mais conteúdo relacionado
Semelhante a Garinpando no MongoDB sem picareta e com elegância
O documento discute bancos de dados de séries temporais (TSDB), apresentando o InfluxDB como um exemplo de TSDB open source. Ele descreve como escrever e consultar dados no InfluxDB, incluindo funções, agregações e consultas contínuas. Também discute a stack TICK da InfluxData para coleta, armazenamento e análise de dados de séries temporais.
Pablo Juan é um especialista em MongoDB que apresentará sobre o banco de dados NoSQL MongoDB, incluindo sua história, compreensão, operações CRUD e responderá perguntas.
O documento discute bancos de dados de séries temporais e apresenta o InfluxDB como uma opção popular para armazenar e consultar dados de séries temporais. O InfluxDB oferece alta performance para gravação e leitura de dados, consultas simples e agregação de dados. Ele é usado comumente para monitoramento, análise de métricas e detecção de anomalias.
Apresentação realizada no dia 8/11/2014 no evento TchêLinux Bento Gonçalves edição 2014 - http://bento.tchelinux.org
Falei sobre os conceitos de bases de dados NoSQL, cases, comparações com o modelo relacional, expressões SQL x MongoDB (orientado à documentos), instalação, recursos do MongoDB, operações via console, modelagem (abordagem embedded), driver PHP, anatomia do código PHP, CRUD (Create, Read, Update and Delete), ObjectId, operadores, segurança, persistência de objetos, tratamento de arrays (documentos aninhados), índices (performance), projeção, agregação, hospedagem, ferramentas de administração e programa de certificação.
O documento apresenta uma introdução ao banco de dados MongoDB, descrevendo-o como um banco de dados não relacional orientado a documentos, de alto desempenho, flexível e open source. Também discute porque Python e Django são boas opções para trabalhar com MongoDB, demonstrando alguns de seus recursos como modelagem de documentos, agregações e map reduce.
O documento fornece uma introdução sobre MongoDB, incluindo como instalá-lo, os principais conceitos como coleções e documentos, e comandos básicos como inserir, buscar e atualizar documentos.
O documento resume as principais características e funcionalidades do MongoDB, um banco de dados não relacional, e como utilizá-lo junto com a linguagem Python. O documento discute como modelar e realizar consultas de dados no MongoDB usando Python e módulos como PyMongo e MongoEngine.
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
Este documento resume uma apresentação sobre layouts, estados de visualização e resoluções de tela em aplicativos Windows Store. A apresentação discute como personalizar layouts usando estilos, alterar estados de visualização com o Visual State Manager e lidar com diferentes resoluções de tela. Também fornece exemplos de como alterar cores e bordas selecionadas em uma ListView.
1) O documento introduz MongoDB e Java, comparando SQL e NoSQL, e discutindo os modelos de dados chave-valor, coluna, grafo e documento.
2) Ele também aborda o CAP Theorem, o Java MongoDB Driver e Spring Data MongoDB.
3) Por fim, apresenta um estudo de caso sobre um sistema de cadastro de pratos de comida com comentários.
Você já ouviu falar de banco de dados NoSQL? Já desenvolveu alguma aplicação Java com NoSQL? Nesta palestra iremos estudar um exemplo básico de como utilizar JPA e Spring Data para desenvolver com o banco NoSQL MongoDB.
Desenvolvendo soluções com banco de dados não relacional - MongoDBiMasters
Christiano Anderson apresenta MongoDB, um banco de dados não relacional e orientado a documentos. Ele discute as características e vantagens do MongoDB como alta performance, ser open source e schema free. Exemplos mostram como utilizar MongoDB com linguagens como Python.
O documento resume as principais características e conceitos do MongoDB, um banco de dados NoSQL orientado a documentos. Em menos de 3 frases:
O documento discute as principais funcionalidades e conceitos do MongoDB, incluindo sua arquitetura não-relacional baseada em documentos JSON, operações básicas como insert, find, update e remove, além de exemplos demonstrando o mapeamento entre conceitos relacionais e não-relacionais.
O documento apresenta Christiano Anderson, um especialista em MongoDB. Ele descreve o que é MongoDB, como é usado por empresas, as linguagens de programação suportadas, e como trabalhar com MongoDB usando Python e Django.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo. rodrigorahman
O documento discute como o framework AKKA pode ser usado para resolver problemas de desempenho em uma consulta de pacotes de viagem. A solução proposta é usar AKKA para executar consultas de destinos de viagem em paralelo, armazenando resultados em cache para respostas mais rápidas. Isso reduziu o tempo de resposta de 50 segundos para 18 segundos para 30 destinos.
Dividindo para conquistar: microservicos com o jeitinho .NETtdc-globalcode
O documento discute a arquitetura de microsserviços da plataforma Superplayer para lidar com escalabilidade. A solução envolve dividir funcionalidades complexas em vários serviços independentes e stateless chamados de "Beets" que se comunicam através de APIs. Isso permite escalar horizontalmente adicionando mais instâncias à medida que o tráfego aumenta.
O documento apresenta uma introdução ao banco de dados MongoDB, descrevendo suas principais características como armazenamento de documentos JSON, consulta por documento, particionamento em shards e suporte a operações MapReduce.
1) O documento discute SQL e NoSQL, tipos de bancos de dados relacionais e não relacionais.
2) MongoDB é apresentado como um banco de dados não relacional do tipo document store, no qual os dados são armazenados em formato JSON.
3) Relacionamentos um-para-muitos podem ser representados de forma normalizada ou embedded no MongoDB.
Semelhante a Garinpando no MongoDB sem picareta e com elegância (20)
O documento apresenta o TypeScript, descrevendo-o como um superconjunto de JavaScript que adiciona tipificação opcional, classes e módulos. Detalha como instalar e compilar o TypeScript, e apresenta recursos como interfaces, classes, módulos e suporte a ES6. Recomenda o uso do TypeScript pelas vantagens desses recursos, mas aponta a necessidade de aprendizado de uma nova linguagem como possível desvantagem.
Entity Framework 7.0 a.k.a Entity Core 1.0Caliel Costa
O documento descreve o Entity Framework Core 1.0, incluindo suas principais funcionalidades como POCO, data annotation e relacionamentos. Ele também discute as mudanças radicais em relação às versões anteriores, como o foco apenas em code first e a disponibilização do código no GitHub. Por fim, apresenta os próximos passos de desenvolvimento e como entrar em contato com o autor.
Dividindo para Conquistar: microserviços com o jeitinho .NETCaliel Costa
O documento discute a arquitetura de microsserviços do Superplayer para lidar com escalabilidade. A solução envolve dividir o sistema em vários serviços independentes como Beet, que fornece estatísticas e métricas, e usar bancos de dados separados para cada serviço. Isso permite escalar horizontalmente cada parte do sistema independentemente.
O documento apresenta DynamoDB, um banco de dados NoSQL da Amazon Web Services. Explica que cada chave é distribuída e replicada em vários nós e que buscas sequenciais não são uma boa ideia. Também discute o custo de acordo com a quantidade de leituras e gravações por segundo e apresenta um estudo de caso de um sistema para armazenamento de tweets usando DynamoDB.
A velocidade de repercussão de uma fraseCaliel Costa
O documento discute como as redes sociais permitem a rápida disseminação de informações e como isso afeta as organizações. As empresas podem usar as redes sociais para monitorar comentários sobre seus produtos e serviços e melhorar a satisfação dos clientes. Monitorar as redes sociais também permite às empresas melhorar sua marca e alcançar novos clientes de forma mais barata do que métodos tradicionais de marketing.
Avaliação NOSQL para indexação do TwitterCaliel Costa
A Gestão do Conhecimento, através de suas técnicas e ferramentas, busca ajudar as empresas a aprender e inovar para atingir melhores resultados e serem mais eficientes no mercado. No entanto, essas mesmas empresas possuem cada vez mais informações internas e externas disponíveis e, muitas vezes, essas diversas informações (dados relacionais, e-mails, vídeos, imagens, etc.) precisam ser analisadas em um intervalo curto de tempo. Esse cenário é denominado Big Data.
Os bancos de dados relacionais podem não estar preparados para suprir as necessidades desse cenário. Conforme o volume de dados aumenta, a capacidade de processamento do servidor também deve aumentar para continuar atendendo aplicações e usuários, necessitando de investimentos crescentes em infraestrutura. Para atender a essas necessidades surgiu um novo paradigma de banco de dados chamado NoSQL. O modelo de dados deixa de ser relacional e passa a ser representado como objetos, documentos ou grafos, e a arquitetura do sistema é voltada para múltiplos servidores, propiciando fácil escalabilidade e alta disponibilidade. O trabalho apresenta todo este contexto e caracteriza os principais sistemas de bancos de dados existentes no mercado.
Ele tem como objetivo avaliar a utilização de um banco de dados NoSQL para a indexação de mensagens do Twitter selecionadas através de uma Taxonomia.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Garinpando no MongoDB sem picareta e com elegância
1. Globalcode – Open4education
Trilha – BigData
Caliel Costa
Nerd, ouvinte de blues, pesquisador, esportista e fotógrafo amador, desenvolvedor e projetista de soluções em TI. Software
Designer no Superplayer.
Gabriel Ladeira
Sou estudante de Ciências da Computação na PUCRS. Atuo como desenvolvedor a cerca de seis anos, tendo contato com
diferentes tecnologias. Atualmente integro a equipe do Superplayer, como backend developer, vivenciando altas aventuras
com Mongodb :)
3. Globalcode – Open4education
Superplayer é um serviço de recomendação musical focado em melhorar
todos os momentos da vida das pessoas através da trilha sonora
perfeita.
Startup brasileira
Criado em 2012
11. Globalcode – Open4education
Planeta Terra
Degrees, Minutes, Seconds to/from Decimal Degrees
Cidade Latitude Longitude
Porto Alegre -30.03128
30° 1' 52.6074" Sul
-51.2125487
51° 12' 45.1764" Oeste
São Paulo -23.598877
23° 35' 55.9572" Sul
-46.6749596
46° 40' 29.8554" Oeste
Londres 51.4994438
51° 29' 57.9978" Norte
0
0° 0' 0"
Hong Kong 22.3576782
22° 21' 27.6402" Norte
114.2196956
114° 13' 10.905" Leste
12. Globalcode – Open4education
GeoJSON
type coordinates
Point deve ser uma posição simples
MultiPoint deve ser um array de posição
LineString deve ser um array de 2 ou mais posições
MultiLineString deve ser um array de array de LineString
Polygon deve ser um LinearRing, ou seja um LineString com 4 ou mais pontos,
onde o primeiro e o último são posições equivalentes
MultiPolygon deve ser um array de array de Polygon
21. Globalcode – Open4education
Longitude e Latitude Vs
Latitude e Longitude
{
"loc" : {
"type" : "Polygon",
"coordinates" : [
[
[ -46.53766020909132, -23.36963320731797 ],
..310..
[ -46.53766020909132, -23.36963320731797 ]
]
]
}
}
Cidade Latitude Longitude
São Paulo -23.598877
-23° 35' 55.9572" Sul
-46.6749596
-46° 40' 29.8554" Oeste
22. Globalcode – Open4education
Longitude e Latitude Vs
Latitude e Longitude
“All documents must store location data in the same order. If
you use latitude and longitude as your coordinate system,
always store longitude first. MongoDB’s 2d spherical index
operators only recognize [longitude, latitude] ordering.”
23. Globalcode – Open4education
Indexando GeoJSON
Tipo Uso
2dsphere Suporta consultas que calculem geometrias em uma esfera tipo a Terra.
2d Gera um geohash de acordo com o valor das coordenadas
haystack Este índice é um tipo especial de índice otimizado para retornar resultados
sobre areas pequenas
24. Globalcode – Open4education
Indexando GeoJSON
db.locations.createIndex({
"loc" : "2dsphere"
}, {
"name" : "loc_"
})
• Índice esparso
• Não pode ser usado como chave de sharding
25. Globalcode – Open4education
Consultas GeoJSON
Function Objetivo
$geoWithin Seleciona geometrias dentro dos limites de outra
$geoIntersects Seleciona geometrias em interção com outra
$near Retorna objetos na proximidade de um ponto
$nearSphere Retorna objetos na proximidade de um ponto na esfera
27. Globalcode – Open4education
Onde estou?
query: {
"loc": {
$geoIntersects: {
$geometry: {
type: "Point" ,
coordinates: [-51.2125487, -30.03128]
}
}
}
}
Result:
Brasil (BR)
Rio Grande do Sul (RS)
Porto Alegre
36. Globalcode – Open4education
Aggregation Pipelines
Comando:
db.collection.aggregate(pipeline, options)
pipeline: []
options: {
"explain": <bool>,
"allowDiskUse": {batchSize : <bool> },
"cursor": {batchSize : <int> },
}
Limitações:
Estágios com limite de 100MB de RAM
Até a versão 2.6 result set está limitado ao tamanho máximo de um documento BSON
(16MB)
37. Globalcode – Open4education
Pipeline Stage Operators
Cada etapa transforma os documentos a medida que estes passam
através do pipeline.
Operadores:
$project
$match
$redact
$limit
$skip
$unwind
$group
$sort
$geoNear
$out
38. Globalcode – Open4education
Pipeline Expressions Operators
Especificam transformações aplicadas aos documentos que passam
pelo pipeline.
Principais tipos de operadores:
• expreções boleanas - $and, $or;
• expreções aplicadas sob conjuntos - $setIntersection, $setUnion;
• expreções de comparação - $eq, $gt, $lt, $cmp;
• expreções aritiméticos - $add, $subtract;
• expreções sob strings - $substr, $toLower;
• expreções acumuladoras - $sum, $avg, $max, $min;
• expreções condicionais - $cond, $ifNull;
• expreções sob data/hora - $dayOfMonth, $month, $year, $hour, $minute.
39. Globalcode – Open4education
Plays por gênero
db.plays.aggregate([
{ $match: { createdat: {
$gte: ISODate("2015-05-01T00:00:00.000Z"),
$lte: ISODate("2015-05-31T23:59:59.000Z")
}
}},
{ $group: { _id: "$account.gender", plays: { $sum: 1 }}}
])
43. Globalcode – Open4education
MapReduce
… é um modelo de programação desenhado para processar grandes volumes de
dados em paralelo, dividindo o trabalho em um conjunto de tarefas
independentes.
45. Globalcode – Open4education
Map
Responsável por transformar cada documento em nenhum, 1 ou muitos
documentos.
O melhor é retornar um documento igual para todas as chaves.
Ela não pode acessar o banco em hipótese alguma
46. Globalcode – Open4education
Reduce
Ela não pode acessar o banco em hipotese alguma (mesmo que seja para
leitura)
Vai receber um array de documentos com o mesmo key
Deve retornar um documento só
O Tipo de retorno deve identico ao tipo de entrada
47. Globalcode – Open4education
Output Param
Pode ser um literal que será transformada em uma nova coleção
Ou pode indicar uma resposta inline
48. Globalcode – Open4education
Qual dia da semana escuta-se mais
música?
db.plays.mapReduce(function() {
emit(dayOfWeek(this.createdat), 1);
}, function(key, values) {
return Array.sum(values);
}, {
out: { inline: 1}
});
53. Globalcode – Open4education
Single Purpose Aggregation Operations
Operações bem específicas para agregação de dados disponíveis no Mongodb.
São elas:
Count
Retorna o número total de documentos que satisfaz a cosulta informada.
Distinct
Retorna os valores distintos de um campo sob os documentos resultantes da consulta.
Group
Agrupa os documentos de uma coleção de acordo com uma chavee específica.
Análago ao GROUP BY em SQL.
56. Globalcode – Open4education
Group
Comando:
db.database.group({
key: <key>,
reduce: <reduce function>,
keyf: <key function>,
cond: <query>,
finalize: <finalize function>
})
Limitações:
Não é possível de utilizar em coleções com sharding.
Result set está limitado ao tamanho máximo de um documento BSON (16MB)
57. Globalcode – Open4education
Número de plays por plataforma
db.plays.group( {
key: { 'consumer.name': 1 },
reduce: function(cur, result) { result.plays += 1 },
initial: { plays: 0 }
})