David Hows Peter Membrey Eelco Plugge

Documentos relacionados
Novatec Editora Ltda

Novatec Editora Ltda. [2014].

Crie Seu Próprio Site

Brandon Rhodes John Goerzen

Harrison Kinsley Will McGugan

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

Google Analytics Justin Cutroni

Julia Elman e Mark Lavin. Novatec

Ademir C. Gabardo. Novatec

Jonathan Stark Brian Jepson

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Defenda sua base com circuitos simples, Arduino e Raspberry Pi

Pramod J. Sadalage Martin Fowler

Ricardo R. Lecheta. Novatec

Pete Goodliffe. Novatec

Padrões de Projeto em PHP

Keith Wood. Apresentação de Dave Methvin. Novatec

Desenvolvendo Websites com PHP

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

Desenvolvimento de Grandes Aplicações Web

Primeiros Passos com o Raspberry Pi

Josh Pauli Revisão técnica Scott White. Novatec

Luiz Carlos Querino Filho

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

PDF Explicado John Whitington

Hélio Engholm Jr. Novatec

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Adrian Mejia. Novatec

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Desenvolvendo Websites com PHP

Desenvolvendo para. Windows 8. Aprenda a desenvolver aplicativos para Windows Phone 8 e Windows 8. Ricardo R. Lecheta. Novatec

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

MARKETING DIGITAL NA ERA. Martha Gabriel CONCEITOS, PLATAFORMAS E ESTRATÉGIAS. Novatec

Design Centrado no Usuário

Wilson Moraes Góes. Novatec

Camila Porto. Novatec

2ª EDIÇÃO. André Milani. Novatec

Copyright 2008, 2013 da Novatec Editora Ltda.

André Gugliotti. Novatec

Criando Relatórios com PHP

Aditya Y. Bhargava. Novatec

Ricardo Lino Olonca. Novatec

Google Android para Tablets

Ricardo Lino Olonca. Novatec

Ricardo R. Lecheta. Novatec

Google Android para Tablets

Aprendendo Programação. ios. Alasdair Allan. Novatec

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

João Eriberto Mota Filho

Service Desk Corporativo

Editor: Rubens Prates Revisão gramatical: Patrizia Zagni Capa: Victor Bittow Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Introdução ao GitHub Peter Bell e Brent Beer

JQuery. A Biblioteca do Programador JavaScript. 3ª Edição Revisada e ampliada. Maurício Samy Silva. Novatec

Wilson Moraes Góes. Novatec

Paulo Strelczuk. Novatec

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec

Justin Seitz. Novatec

Larry Ullman. Novatec

Criando Aplicações Gráficas com PHP

Ricardo Kléber M. Galvão. Novatec

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman

como acabar com sua em apenas 140 caracteres Carolina Lima Novatec

Simon Holmes. Novatec

Novatec Editora Ltda

Ademir C. Gabardo. Novatec

Indira Knight. Novatec

Nelson Glauber de Vasconcelos Leal

Andreas Wittig Michael Wittig

Guia Definitivo de. . DJ Waldow Jason Falls. Tradução Aline Naomi Sassaki. Novatec

Guia do Programador Joel Saade

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

ADIANTI FRAMEWORK PARA PHP

Murillo Lo Visco. Novatec

Conrado Adolpho. Novatec

2ª Edição Alexandre Keller

Jonathan Weber e a equipe da LunaMetrics

João Eriberto Mota Filho

Aravind Shenoy Anirudh Prabhu

Edgar Gomes de Abreu

Segurança em Redes sem Fio

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

Benjamin Bengfort Jenny Kim

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

David Hows Peter Membrey Eelco Plugge

Ryan Mitchell. Novatec

Usar FTK Imager para gerar evidências, exportar arquivos de evidências, criar imagens forenses e converter imagens existentes.

jquery Cookbook Comunidade de Desenvolvedores jquery

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. 2a Edição. Samuel Henrique Bucke Brito. Novatec

Allen B. Downey. Novatec

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

UML 2 uma abordagem prática Gilleanes T. A. Guedes

Transcrição:

David Hows Peter Membrey Eelco Plugge Novatec

Original English language edition published by Apress, Copyright 2014 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora. All rights reserved. Edição original em Inglês publicada pela Apress, Copyright 2014 by Apress, Inc. Edição em Português para o Brasil copyright 2015 pela Novatec Editora. Todos os direitos reservados. Novatec Editora Ltda. [2015]. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Lúcia A. Kinoshita Revisão gramatical: Patrizia Zagni Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A. Yoshimatsu ISBN: 978-85-7522-422-9 OG20150305 Histórico de impressões: Março/2015 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário Sobre os autores...11 Sobre os revisores técnicos...12 Agradecimentos...14 Introdução...15 Capítulo 1 Introdução ao MongoDB...16 Examinando a filosofia do MongoDB... 17 Utilizando a ferramenta correta para o trabalho correto... 17 Ausência de suporte inato a transações...20 JSON e MongoDB... 21 Adotando uma abordagem não relacional...25 Escolhendo entre desempenho versus recursos...27 Executando o banco de dados em qualquer lugar...28 Encaixando todas as partes...29 Gerando ou criando uma chave...29 Usando chaves e valores... 31 Implementando coleções...32 Entendendo os bancos de dados...33 Examinando a lista de recursos...33 Usando armazenamento orientado a documentos (BSON)...33 Suportando queries dinâmicas...35 Indexando seus documentos...37 Tirando proveito dos índices geoespaciais...38 7

8 Introdução ao MongoDB Gerando perfis de queries...38 Atualizando informações in-place...39 Armazenando dados binários...40 Replicando dados... 41 Implementando o sharding...42 Usando as funções map e reduce...42 O framework de agregação do MongoDB...43 Obtendo ajuda... 44 Acessando o site... 44 Batendo um papo com os desenvolvedores do MongoDB... 44 Copiando e colando códigos do MongoDB...45 Encontrando soluções em grupos do Google...45 Tirando proveito do sistema de monitoração JIRA...45 Resumo... 46 Capítulo 2 Instalando o MongoDB...47 Selecionando a sua versão...47 Entendendo os números de versão...48 Instalando o MongoDB em seu sistema...49 Instalando o MongoDB no Linux...49 Instalando o MongoDB no Windows...52 Executando o MongoDB...53 Pré-requisitos...53 Analisando o layout da instalação...54 Usando o shell do MongoDB...55 Instalando drivers adicionais...56 Instalando o driver para PHP...57 Verificando se sua instalação PHP funciona...62 Instalando o driver para Python...65 Verificando se sua instalação do PyMongo funciona... 68 Resumo...69

Sumário 9 Capítulo 3 O modelo de dados...70 Fazendo o design do banco de dados...70 Explorando as coleções...72 Usando documentos...74 Criando o campo _id...79 Criando índices...80 Causando impacto no desempenho com os índices...80 Implementando a indexação geoespacial... 81 Efetuando queries com informações geoespaciais...83 Usando o MongoDB no mundo real... 90 Resumo... 90 Capítulo 4 Trabalhando com dados...92 Navegando pelos seus bancos de dados...92 Visualizando os bancos de dados e as coleções disponíveis...93 Inserindo dados em coleções...94 Queries de dados... 96 Utilizando a notação com ponto...99 Usando as funções sort, limit e skip...100 Trabalhando com capped collections, ordem natural e $natural... 102 Obtendo um único documento...104 Usando comandos de agregação... 105 Trabalhando com operadores condicionais...109 Tirando proveito das expressões regulares... 120 Atualizando dados... 120 Atualizando dados com update()...121 Implementando um upsert por meio do comando save( )... 122 Atualizando informações automaticamente... 122 Especificando a posição em um array correspondente... 128 Operações atômicas... 130 Modificando e retornando um documento atomicamente... 132 Renomeando uma coleção... 133

10 Introdução ao MongoDB Removendo dados... 134 Referenciando um banco de dados... 136 Fazendo referência aos dados manualmente... 136 Fazendo referência aos dados com DBRef... 138 Implementando funções relacionadas a índices... 140 Analisando comandos relacionados a índices... 143 Forçando um índice especificado em queries de dados... 143 Restringindo as correspondências feitas pelas queries... 145 Resumo... 146 Capítulo 5 GridFS...147 Esclarecendo alguns dados históricos... 148 Trabalhando com o GridFS... 150 Conhecendo as ferramentas de linha de comando... 150 Usando a chave _id... 152 Trabalhando com nomes de arquivo... 152 Determinando o tamanho de um arquivo... 153 Trabalhando com tamanhos de porções... 154 Monitorando a data de carga... 155 Gerando hashes de seus arquivos... 155 Dando uma espiada no MongoDB internamente... 156 Utilizando o comando search... 159 Apagando arquivos...160 Obtendo arquivos do MongoDB...161 Conclusão sobre o mongofiles...161 Explorando a eficácia do Python... 162 Conectando-se ao banco de dados... 163 Acessando as palavras...164 Inserindo arquivos no MongoDB... 165 Obtendo arquivos do GridFS...166 Apagando arquivos...166 Resumo... 167