O documento apresenta uma introdução ao MongoDB, incluindo uma visão geral de bancos de dados, NoSQL e bancos de dados orientados a documentos. Ele descreve os principais operadores de comparação e lógicos no MongoDB, como $eq, $gt, $or e $text, e fornece exemplos de seu uso.
1. Apresentar um breve resumo dos principais comandos para manipulação de banco de dados relacionais utilizando o padrão SQL.
2. Aplicar os comandos apresentados em exercícios práticos para avaliação do nível de conhecimento específico de cada individual e coletivo.
Some parts of our applications don't need to be asynchronous or interact with the outside world: it's enough that they are stateful, possibly with the ability to handle failure, context, and logging. Although you can use ZIO 2 or monad transformers for this task, both come with drawbacks. In this presentation, Jorge Vásquez will introduce you to ZPure, a data type from ZIO Prelude, which lets you scale back on the power of ZIO 2, but with the same high-performance, type-inference, and ergonomics you expect from ZIO 2 libraries.
Aprenda de forma bem objetiva as principais estruturas de dados disponíveis no Python: listas, tuplas, set, dicionário, pilha e fila. Conheça também primitivas de programação funcional como list comprehension, map, reduce, filter sorted entre outros.
1. Apresentar um breve resumo dos principais comandos para manipulação de banco de dados relacionais utilizando o padrão SQL.
2. Aplicar os comandos apresentados em exercícios práticos para avaliação do nível de conhecimento específico de cada individual e coletivo.
Some parts of our applications don't need to be asynchronous or interact with the outside world: it's enough that they are stateful, possibly with the ability to handle failure, context, and logging. Although you can use ZIO 2 or monad transformers for this task, both come with drawbacks. In this presentation, Jorge Vásquez will introduce you to ZPure, a data type from ZIO Prelude, which lets you scale back on the power of ZIO 2, but with the same high-performance, type-inference, and ergonomics you expect from ZIO 2 libraries.
Aprenda de forma bem objetiva as principais estruturas de dados disponíveis no Python: listas, tuplas, set, dicionário, pilha e fila. Conheça também primitivas de programação funcional como list comprehension, map, reduce, filter sorted entre outros.
Lambdas and Streams Master Class Part 2José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This second part covers the Stream API, reduction and the Collector API.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Aprenda Java de forma simples e prática. Este curso também ensina lógica e fundamentos de programação orientada a objetos e é ponto de partida a todos que desejam aprender Java.
Introduces the functional programming ideas of Functor, Apply, Applicative And Monad. Shows how to implement each in Scala with Scalaz and how to validate the implementation using property based test using specs2 and scalacheck.
Lambdas and Streams Master Class Part 2José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This second part covers the Stream API, reduction and the Collector API.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Aprenda Java de forma simples e prática. Este curso também ensina lógica e fundamentos de programação orientada a objetos e é ponto de partida a todos que desejam aprender Java.
Introduces the functional programming ideas of Functor, Apply, Applicative And Monad. Shows how to implement each in Scala with Scalaz and how to validate the implementation using property based test using specs2 and scalacheck.
Apresentação de Alex Martins e Laercio de Souza. Estudantes de Sistemas para Internet. Agradecimento as pessoas que apoiaram no desenvolvimento da apresentação. Faltou algumas referências. Mas para ficar a disposição para vocês.
Slides da Apresentação realizada 24/09/2015 na Trilha de Java do The Developers Conference.
Resumo:
Programadores Java estão acostumados a desenvolver preocupando-se não somente com o que deveria ser feito, mas também em como fazer. Um simples código para buscar os dois maiores valores de uma lista pode levar tempo precioso de desenvolvimento. Para solucionar esse e outros problemas, o Java 8 traz uma série de melhorias buscando trazer para o Java muito da programação funcional que víamos em outras linguagens. Expressões lambda, streams entre outras novidades do Java serão apresentadas nessa palestra de forma simples e direto ao ponto.
http://www.thedevelopersconference.com.br/tdc/2015/portoalegre/trilha-java
2. Agenda
Visão geral sobre bancos de dados
Introdução ao NoSQL
Banco de dados orientado a documento
Introdução ao MongoDB
JSON
Instalação do MongoDB
Primeiros comandos no MogoDB
CRUD
Operadores de Comparação e Lógicos
Exercícios
3. Operadores de Comparação e Lógicos
Estrutura de controle que segrega itens de acordo com o operador que está usando.
Os operadores de comparação como o próprio nome já diz, verifica dois atributos comparando
seus valores.
Operadores lógicos realizam comparação entre expressões.
4. Operadores de Comparação e Lógicos
Os operadores de comparação são :
$eq
$gt
$gte
$lt
$lte
$ne
$in
$nin
6. Operadores de Comparação e Lógicos
$eq: Retornas os objetos que tem o valor igual ao especificado.
Sintaxe: {<field> : {$eq: <valor> }
Exemplo: {“age” : {$eq : 20} }
7. Operadores de Comparação e Lógicos
Ficar escrevendo em uma linha toda a nossa query pode ficar ruim com o tempo.Então, vamos
criar uma variável para receber nossa query de operação
> var query = {“age” : {$eq : 20}}
8. Operadores de Comparação e Lógicos
$gt: Retornas os objetos que tem o valor maior ao especificado.
Sintaxe: {<field> : {$gt: <valor> }
Exemplo: {“age” : {$gt : 20} }
9. Operadores de Comparação e Lógicos
$gte: Retornas os objetos que tem o valor maior ou igual ao especificado.
Sintaxe: {<field> : {$gte: <valor> }
Exemplo: {“age” : {$gte : 20} }
10. Operadores de Comparação e Lógicos
$lt: Retornas os objetos que tem o valor menor que ao especificado.
Sintaxe: {<field> : {$lt: <valor> }
Exemplo: {“age” : {$lt : 20} }
11. Operadores de Comparação e Lógicos
$lte: Retornas os objetos que tem o valor menor igual que ao especificado.
Sintaxe: {<field> : {$lte: <valor> }
Exemplo: {“age” : {$lte : 20} }
12. Operadores de Comparação e Lógicos
$ne: Retornas os objetos com valor diferentes ao especificado.
Sintaxe: {<field> : {$ne: <valor> }
Exemplo: {“age” : {$ne : 28} }
13. Operadores de Comparação e Lógicos
$ne: Retornas os objetos que tem o valor dentre os especificados no array.
Sintaxe: {<field> : {$in: [valor, valor1] }
Exemplo: {“age” : {$in : [28,20]} }
14. Operadores de Comparação e Lógicos
$nin: Retornas os objetos que não tem o valor dentre os especificados no array.
Sintaxe: {<field> : {$nin: [valor, valor1]}
Exemplo: {“age” : {$in : [28,20]} }
16. Operadores de Comparação e Lógicos
Adicione cinco novas pessoas.
Busque todas as pessoas com idade maior que 30
Busque todas as pessoas com idade menor ou igual a 30
Busque todas as pessoas com idade menor que 23
Busque todas as pessoas com idades iguais a 20, 21, 22, 23, 24,25
18. Operadores de Comparação e Lógicos
$or: Executa a comparação de duas expressões ou mais e retorna os objetos que cumpram com
ao menos uma destas.
Sintaxe: {$or : [ <expressao1>, <expressao2>, <expressao3>]}
Exemplo: {$or : [
{“name” : {$eq : “Gabriel Alves Scavassa”} } ,
{“name” : {$eq : “João Paulo”} }
]}
19. Operadores de Comparação e Lógicos
$or: Executa a comparação de duas expressões ou mais e retorna os objetos que cumpram com
ao menos uma destas.
20. Operadores de Comparação e Lógicos
$and: Executa a comparação de duas expressões ou mais e retorna os objetos que cumpram
com todas elas.
Sintaxe: {$and : [ <expressao1>, <expressao2>, <expressao3> ]}
Exemplo: {$and : [
{“name” : {$eq : “Gabriel Alves Scavassa”} } ,
{“age” : {$eq :28 }}
]}
21. Operadores de Comparação e Lógicos
$and: Executa a comparação de duas expressões ou mais e retorna os objetos que cumpram
com todas elas.
22. Operadores de Comparação e Lógicos
$not: Retorna os objetos que não compreendem as expressões.
Sintaxe: {<field>: { $not : {<operator> : <valor>} } }
Exemplo: {“age”: { $not : {$gte : 20} } }
23. Operadores de Comparação e Lógicos
$nor: Retornas todos os objetos que não estão de acordo com as expressões no array.
Sintaxe: { $nor : [{expressão}, {expressão1} ] }
Exemplo: {$nor : [ { "age" : 20}, {"age" : 28} ] }
24. Operadores de Comparação e Lógicos
$exists: Junta clausulas e retornas todos os documentos que não estão de acordo com .
Sintaxe: { <field>: { $exists : < true || false> } }
Exemplo: {city: { $exists : true} }
25. Operadores de Comparação e Lógicos
$text: Realiza busca textual no campo especificado.
Sintaxe: { $text: { $search: "coffee" } }
Exemplo: {$text: { $search : ‘Gabriel’} }
26. Operadores de Comparação e Lógicos
Para o comando de pesquisa por texto, nós precisamos criar um index com o campo de texto que
faremos a pesquisa.
Sintaxe: db.pessoas.createindex( { name : “text” } )
27. Operadores de Comparação e Lógicos
$text: Realiza busca textual no campo especificado.
Sintaxe: { $text: { $search: "coffee" } }
Exemplo: { $text: { $search : ‘Gabriel’} }
28. Operadores de Comparação e Lógicos
Para buscar partes de uma palavre, usaremos o próprio find().
> db.pessoas.find({"name" : /G/})
Fazemos o pipe para separar a letra. Por padrão está como Case Sensitive.
.
29. Operadores de Comparação e Lógicos
> db.pessoas.find( { “name” : /G/i})
Assim tornamos a pesquisa como Case Insensitive.