39

Minicurso mongo db

Embed Size (px)

Citation preview

Page 1: Minicurso mongo db
Page 2: Minicurso mongo db

Você ainda não conhece?

{ nome: ‘Pablo Juan’,Titulo: ‘Microsoft Student Partner’,

Blog:‘pablojuancruz.wordpress.com’Códigos: ‘github.com/pablojuancruz’

email: ‘[email protected]’ }

Page 3: Minicurso mongo db

Agenda

• Sobre• NOSql• História MongoDB• Compreensão• Crud• Perguntas

Page 4: Minicurso mongo db

4

Apresentação – Pablo Juan

• 1º Torneio de Robótica Lego Brasil• Técnico em Informática com ênfase em programação(ETEC de Itaquera).• Graduação em Analise e desenvolvimento de sistemas(FIAP)• Mais de 6 anos de experiência• CEO & Founder For Your System • Consultor .Net Sênior WorkInside• Microsoft Student Partner

“Que o teu orgulho e objetivo consistam em pôr no teu trabalho algo que se assemelhe a um milagre”Leonardo da Vinci.

Page 5: Minicurso mongo db

5

Page 6: Minicurso mongo db

6

Contatos

• Perfil no Facebookhttps://www.facebook.com/PabloJuan.cruz

• Blog Pessoalhttps://pablojuancruz.wordpress.com.br

• LinkedInhttp://br.linkedin.com/in/PabloJuanCruz

Page 7: Minicurso mongo db

7

“O mundo de TI é mais voltado para moda do que a própria moda”

Page 8: Minicurso mongo db

NORel???

Page 9: Minicurso mongo db

NOSql

Page 10: Minicurso mongo db
Page 11: Minicurso mongo db

• Em 1998 com Carlo Strozzi• 2009, Erick Evans, Johan Oskarsson • Open source distribuídos• Performance• SubDivisão(Orientação)

Wide Column Store / Column Families(Hadoop, Cassandra) Document Store(MongoDb, CouchDB) Key Value / Tuple Store(Riak, Redis) Graph Databases(Neo4j,Cayley, ArangoDB) Multimodel Databases(OrientDb) Object Databases(Versant,db4o) Grid & Cloud Database Solutions(Oracle Coherence) XML Databases(EMC Documentum xDB) Multidimensional Databases(Globals) Multivalue Databases(OpenInsight)

Mas o que é NOSQL?

Page 12: Minicurso mongo db
Page 13: Minicurso mongo db

História MongoDB

Page 14: Minicurso mongo db

Etimologia 

HUMONGOuS

MONGODB

Page 15: Minicurso mongo db

Historia

– DoubleClick

– 10Gen

– MongoDB INC• WiredTiger

Page 16: Minicurso mongo db

Compreensão

Page 17: Minicurso mongo db
Page 18: Minicurso mongo db

MongoDB

• C++ • Schemaless • JSON/BSON (Orientado a documentos)• Replicação• Sharding • GridFS• Busca/Geolocalização

Page 19: Minicurso mongo db
Page 20: Minicurso mongo db
Page 21: Minicurso mongo db
Page 22: Minicurso mongo db

TerminologiaSQL MongoDB

database database

table collection

row document or BSON document

column field

index index

table joins embedded documents and linking

primary keySpecify any unique column or column combination as primary key.

primary keyIn MongoDB, the primary key is automatically set to the _idfield.

aggregation (e.g. group by) aggregation pipelineSee the SQL to Aggregation Mapping Chart.

Page 23: Minicurso mongo db

Configuração Windows

Page 24: Minicurso mongo db
Page 25: Minicurso mongo db
Page 26: Minicurso mongo db
Page 27: Minicurso mongo db

Instalando como serviço • https://pablojuancruz.wordpress.com/2014/09/03/configurando-ambiente-mongodb-no-windows/

Page 28: Minicurso mongo db

CRUD

Page 29: Minicurso mongo db

Primeiros Comandos• Listando dataBase

– Show dbs;• Criando dataBase/usando dataBase já criado

– Use NomeD ataBase()• Criando e inserindo dado em uma coleção

– db.nomeColecao.insert({dado1:’’,dado2:true}• Listando o conteúdo de uma coleção

– db.nomeColecao.find()

Page 30: Minicurso mongo db

Validando Schemas

db.createCollection( “NomeCollection", { validator: { $and: [ { campo1: { $type: "string" } }, { campo2: { $in: [ “Arroz", “Feijão", “Macarrão", “Banana" ] } }, { campo3{ $in: [ “Tranquilo", “Favorável", “BaileDeFavela" ] } }, { campo4: { $gte: 1992} } ] }} )

Page 31: Minicurso mongo db

Primeiros Comandos• Apagando itens de uma coleção

– db.nomeColecao.remove({query})

• Apagando uma coleção– db.nomeColecao.drop()

• Update (forma básica)var query = db.nomeColecao.findOne()query.dado1 = 23db.nomeColecao.save(query)

Page 32: Minicurso mongo db

Consultas MongoDb

• Listando– db.nomeColecao.findOne()

• Find com Regex– db.nomeColecao.find( { nome : /a/ } );– db.teste.find({nome:{$regex: /a/}})

Page 33: Minicurso mongo db

Operadores

• $eq -- Equal(Igual)– valores que são iguais a um outro valor especificado.

• $gt – Great Than(Maior)– Valores que são maiores do que um outro valor especificado.

• $gte – Great Than or Equal(Maior ou Igual)– Valores que são maiores ou iguais a um outro valor especificado.

• $lt - less than – Valores que são menores do que um outro valor especificado.

• $lte less than or equal – Valores que são menores ou iguais a um outro valor especificado.

• $ne Not Equal– Combina todos os valores que não são iguais a um valor especificado

{"campo" : { $operador: valor} }

db.teste.find({idade:{$gt:18}}).pretty()

Page 34: Minicurso mongo db

Operadaroes array• $in

– Corresponde a qualquer um dos valores especificados em uma matriz.

• $nin - (Not In)– Nenhum dos valores especificados em uma matriz.

db.teste.find({tags : {$in: ['teste','ok']}}).pretty()

Resultado:{ "_id" : ObjectId("5605893fa3a64169cc4622d2"), "nome" : "TJ", "idade" : 24, "tags" : [ "teste", "ok" ]}

Page 35: Minicurso mongo db

Operadores

• $or

• $nor

• $and

db.teste.find({$and:[{nome:"a"}, {idade: {$gte:10}}]}).pretty()

Page 36: Minicurso mongo db

Update• Query

– os critérios de seleção para a atualização. Os mesmos seletores de consulta como no método find () estão disponíveis. O “where” do SQL.

• Update– Campo: valor que desejamos alterar.

• UpSert– Opcional. Se definido como verdadeiro, cria um novo documento quando nenhum coincide com os critérios de

consulta. O valor padrão é falso, o que significa que não irá inserir um novo documento quando não for encontrada nenhuma correspondência.

• Multi– Opcional. Se definido como verdadeiro, atualiza vários documentos que atendem aos critérios de consulta. Se

definido como false, atualiza um documento. O valor padrão é falso. Para obter informações adicionais, consulte multiparâmetro.

• WriteResult– Número de documentos que combinam com a consulta.

db.coleção.update( {editor:{$in:[/a/]}} , {preco:19}, { upsert: true, multi: false })

Page 38: Minicurso mongo db
Page 39: Minicurso mongo db

Você ainda não conhece?

{ nome: ‘Pablo Juan’,Titulo: ‘Microsoft Student Partner’,

Blog:‘pablojuancruz.wordpress.com’Códigos: ‘github.com/pablojuancruz’

email: ‘[email protected]’ }