segunda-feira, 1 de dezembro de 2014
12:21
Paulo Fagundes
MongoDB, news
No comments
terça-feira, 14 de outubro de 2014
14:01
Paulo Fagundes
Tools, Trial
No comments
13:47
Paulo Fagundes
Tools, Trial
No comments
Neste Link você pode fazer o download do Trial de nossa Cloud
domingo, 10 de agosto de 2014
No MongoDB os operadores condicionais são:
(>) Maior que -> $gt
(<) Menor que -> lt$
(> =) Maior ou igual a -> $gte
(<=) Menor ou igual a -> $lte
O nome de nosso banco de dados é "myinfo 'e o nome da coleção é" testtable'. Abaixo segue nossa coleção (Collection):
{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f34fa0fe5e6467e58ae78"), "user_id" : "user2", "password" : "11aa1a", "sex" : "Male", "age" : 24, "date_of_join" : "17/10/2009", "education" : "M.B.A.", "profession" : "MARKETING", "interest" : " MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "co mmunity_moder_id" : [ "MR. Roy", "MR. Das", "MR Doglus" ], "community_members" : [ 500, 300, 1400 ], "friends" : { "valued_friends_id" : [ "pal", "viki", "john" ], "ban_friends_id" : [ "jalan", "mono j", "evan" ] } } } { "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }MongoDB (>) maior que - Operador - $gt
Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" é maior do que 22, o seguinte comando MongoDB pode ser usado:
>db.testtable.find({age : {$gt : 22}}).pretty();
db.find () é compando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().
Equivalente ao comando SQL
SELECT * FROM testtable WHERE age >22;
Resultado
{
"_id" : ObjectId("528f34fa0fe5e6467e58ae78"),
"user_id" : "user2",
"password" : "11aa1a",
"sex" : "Male",
"age" : 24,
"date_of_join" : "17/10/2009",
"education" : "M.B.A.",
"profession" : "MARKETING",
"interest" : " MUSIC",
"extra" : {
"community_name" : [
"MODERN MUSIC",
"CLASSICAL MUSIC",
"WESTERN MUSIC"
],
"co mmunity_moder_id" : [
"MR. Roy",
"MR. Das",
"MR Doglus"
],
"community_members" : [
500,
300,
1400
],
"friends" : {
"valued_friends_id" : [
"pal",
"viki",
"john"
],
"ban_friends_id" : [
"jalan",
"mono j",
"evan"
]
}
}
}
MongoDB (> =) maior ou igual - Operador - $gte
Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" maior ou igual a 22, o seguinte comando MongoDB pode ser usado:
>db.testtable.find({age : {$gte : 22}}).pretty();
db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().
Equivalente ao comando SQL
SELECT * FROM testtable WHERE age >=22;
Resultado
{ "_id" : ObjectId("528f34fa0fe5e6467e58ae78"), "user_id" : "user2", "password" : "11aa1a", "sex" : "Male", "age" : 24, "date_of_join" : "17/10/2009", "education" : "M.B.A.", "profession" : "MARKETING", "interest" : " MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "co mmunity_moder_id" : [ "MR. Roy", "MR. Das", "MR Doglus" ], "community_members" : [ 500, 300, 1400 ], "friends" : { "valued_friends_id" : [ "pal", "viki", "john" ], "ban_friends_id" : [ "jalan", "mono j", "evan" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }
MongoDB (<) menor que - Operador - $lt
Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" inferior a 19, o seguinte comando MongoDB pode ser usado:
>db.testtable.find({age : {$lt : 19}}).pretty();
Resultado
{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } }
MongoDB (<=) menor ou igual ao operador - $lte
Se quisermos buscar documentos na coleção "testtable" os quais contém o valor de "age" é menor ou igual a 19, o comando seguinte mongodb pode ser usado:
>db.testtable.find({age : {$lte : 19}}).pretty();
db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().
Equivalente ao comando SQL
Resultado
{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } }
Consulta MongoDB utilizando (<) e (>) operator - $lt e $gt
Se quisermos buscar documentos do coleção "testtable", que contém o valor de "age" é maior que 17 e menor que 24, o seguinte comando MongoDB pode ser usado:
>db.testtable.find({age : {$lt :24, $gt : 17}}).pretty();
db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().
SELECT * FROM testtable WHERE age <24 and age>17;
Resultado
{ "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }
terça-feira, 5 de agosto de 2014
Configurar Afinidade Grupo
Criando as Instances
Instance 1
1.No portal, clique em New->Virtual Machine->From Gallery
2.Na página Seleção de OS das VMs, escolha "OpenLogic CentOS 6.2" e clique na próxima seta para continuar
3.Na página de configuração da VM, especifique valores para os parâmetros
- Virtual Machine Name - "mongodbrs1"
Update de SO
Utilize este passo opcional para atualizar o sistema operacional em cada uma de suas instâncias VM. Uma vez que os parâmetros da máquina ter sido configurada acima, você precisa se logar em máquinas para atualizá-los. Mais informações sobre este podem ser encontradas em Como Fazer logon em uma máquina virtual rodando Linux.
Use o nome de usuário e senha que você usou ao criar as instâncias de máquinas virtuais.
Uma vez que você estiver conectado à máquina, atualize o sistema operacional executando: sudo yum update e seguir as instruções. Isso pode levar algum tempo.
Ao conectar a instâncias 2 e 3, lembre-se de usar as portas 23 e 24, e não a porta ssh padrão de 22.
Set Up Disks
- Faça logon na instância
- Em seguida, execute sudo chown `id-u`/mnt/datadrive / para fazer a mongouser o proprietário do
diretório de dados
- Execute o seguinte comando: mkdir -p /mnt/datadrive/data
Instalar e executar o MongoDB
Instalar o MongoDB
Configurar o MongoDB
1.Conecte-se à instância usando ssh ou PuTTY
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:
port = 27018 dbpath = /mnt/datadrive/data logpath = /mnt/datadrive/mongod.log replSet = mongors3.Salve o arquivo de configuração
Instance 2
1.Conecte-se à instância usando ssh ou PuTTY, lembrando a porta SSH para este nó foi alterada a partir do padrão de 22
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:
port = 27019 dbpath = /mnt/datadrive/data logpath = /mnt/datadrive/mongod.log replSet = mongors3.Salve o arquivo de configuração
Instance 3
1.Conecte-se à instância usando ssh ou PuTTY, lembrando a porta SSH para este nó foi alterada a partir do padrão de 22
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:
port = 27020 dbpath = /mnt/datadrive/data logpath = /mnt/datadrive/mongod.log replSet = mongors3.Salve o arquivo de configuração
Inicie o MongoDB
Depois que os arquivos de configuração foram editados, iniciar o processo de banco de dado "mongod" em cada instância por:
1.Faça logon na instância
2.Execute o seguinte comando para iniciar o processo:
mongod --config /etc/mongod.confIsto deve iniciar o processo de mongod
Verifique se o mongod iníciou, pelo arquivo de log usando o comando:
tail --f /mnt/datadrive/mongod.log
Configure o conjunto de réplica
Conecte-se ao processo de execução mongod usando o mongo shell:
1.Se estiver conectado à instância VM digite o seguinte comando, onde a porta é 27018, para instance 1, 27019, para a instance 2 e 27020, para a instance 3:
mongo --port <port number>2.Se a conexão com o processo de mongod em Azure é a partir de sua máquina local use o seguinte comando:
mongo --host mongodbrs.cloudapp.net --port <port number>3.No shell mongo digite o seguinte:
> conf = {
_id : “mongors”,
members : [
{_id:0, host:”mongodbrs.cloudapp.net:27018"},
{_id:1, host:”mongodbrs.cloudapp.net:27019"},
{_id:2, host:”mongodbrs.cloudapp.net:27020"}]}
> rs.initiate(conf)
Você já iniciou com sucesso o conjunto de réplicas
Resumo
mongodb://mongodbrs.cloudapp.net:27018, .cloudapp.net:27019, .cloudapp.net:27020/?replicaSet=mongors"Fonte MongoDB
05:18
Paulo Fagundes
Cloud, MongoDB, Nuvem
No comments
segunda-feira, 4 de agosto de 2014
20:45
Paulo Fagundes
MongoDB, Slides
No comments
- Introdução ao NoSQL e MongoDB
- Instalação
- Consultas
- indexação
- Modelagem
- Agregação
quinta-feira, 24 de julho de 2014
Este estudo apresenta a comparação entre dois bancos de dados, o SQL Server e o MongoDB. Para que houvesse uma justa comparação entre os bancos a mesma estrutura de código foi utilizada. Foram feitos testes com as operações básicas: inserção, exclusão, consulta e alteração, e utilizando a mesma quantidade de registros para ambos os bancos. Os testes demonstraram que o banco de dados MongoDB apresenta velocidade superior ao banco de dados SQL Server.
quinta-feira, 29 de maio de 2014
MongoDB e Hadoop são uma combinação poderosa e pode ser usado em conjunto para fornecer análises complexas e processamento de dados armazenados no MongoDB. O guia a seguir mostra como você pode começar a trabalhar com o MongoDB Conector para Hadoop. Uma vez que você se familiarizar com o conector, você pode usá-lo para puxar seus dados MongoDB nos Jobs do Hadoop Map-Reduce, processar os dados e retornar resultados para uma coleção MongoDB.
Para iniciar, precisamos ver alguns prerequisitos básicos :
10:40
Paulo Fagundes
Memória, MongoDB, MongoMem, Tutoriais
No comments
Primeiro uma pergunta simples a todos usuários de MongoDB: "Vocês conseguem me dizer o quanto de memória cada coleção (Collection) está consumindo?" Como já era esperado, a maioria das respostas será "Não" e foi por isso que a equipe de engenharia da Wish, desenvolveu o MongoMem que permite aos desenvolvedores do MongoDB localizar com precisão as coleções que necessitam uma otimização de memória em caráter de urgência em vez de ficar procurando os problemas baseados apenas na intuição. De acordo com a visão da equipe da Wish, a necessidade do MongoMem era clara.
"Antigamente usávamos muito mais memoria do que realmente deveria usar, estávamos correndo as cegas para decidir onde deveria ser otimizado. Depois de várias otimizações frustradas, as quais não fizeram diferença alguma, nós decidimos que realmente necessitávamos de melhores informações e assim o MongoMem nasceu."
Uma visão geral da equipe da Wish entra em detalhes sobre como funciona o MongoMem onde chamadas mincore e o comando collStats fazem a maioria do trabalho, o que você pode fazer com ele e até mesmo detalhes de alguns dos planos para o futuro da MongoMem. No geral, porém, é uma pequena ferramenta bastante simples:
Para cada coleção, temos:
- Número de MB na memória
- Número de MB no total
- Percentagem da coleção que está na memória
Você pode encontrar MongoMem no GitHub (com as instruções de uso), então se você está procurando algumas dica sobre como evitar que MongoDB exagere na memória, isso pode ser uma ferramenta muito útil para você.
10:10
Paulo Fagundes
JSON, MongoDB, NoSQL, RDBMS, Tutoriais
No comments
NoSQL, nos últimos anos passou de um simples zum zum zum para uma realidade atual.
Portanto, como, onde e quando devemos utiliza-lo é a grande questão para muitos gestores que ainda não conseguiram assimilar a nova tendência.
Como profundo conhecedor de ambos (NoSQL e RDBMS) irei listar abaixo um resumo de melhores práticas onde cada tipo será melhor utilizado.
Python é uma linguagem de programação de alto nível, interpretada, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar de várias partes da linguagem possuírem padrões e especificações formais, a linguagem como um todo não é formalmente especificada. O padrão de fato é a implementação CPython.
A seguir você vai aprender como instalar o Python e ativar o suporte para idioma no MongoDB .
06:52
Paulo Fagundes
Aplicativos, Import, JSON, MongoDB, MySQL
No comments
quinta-feira, 22 de maio de 2014
Sharding
Sharding é o processo de armazenamento de registros de dados em várias máquinas e é a abordagem do MongoDB para atender as demandas de crescimento de dados. À medida que o tamanho dos dados aumenta, uma única máquina pode não ser suficiente para armazenar os dados, nem fornecer uma leitura e gravação com rendimento aceitável. O Sharding resolve o problema com escala horizontal. Com sharding, você adiciona mais máquinas para suportar o crescimento de dados e as demandas de operações de leitura e escrita.
Por que Sharding?
- Na replicação todas as gravações são feitas no nó principal (Master)
- Consultas sensíveis à latência continuam sendo feitas no nó principal
- Conjunto de réplicas possuem limitações de 12 nós
- A memória pode não ser suficiente quando o dataset ativo for muito grande
- Disco local não possui espaço suficiente
- A escala vertical é muito cara
Sharding no MongoDB
No diagrama acima, existem três componentes principais que são descritos abaixo:
- Shards: Shards (fragmentos) são usados para armazenar dados. Eles fornecem alta disponibilidade e consistência dos dados. Em um ambiente de produção cada fragmento é um conjunto de réplicas separado.
- Config Servers: Config Servers armazenam os metadados do cluster. Estes dados contém um mapeamento dos dados do conjunto de cluster para os shards. O roteador consulta e usa os metadados para direcionar operações de shards específicos. Em um ambiente de produção, Sharded Clusters possuem exatamente 3 servidores de configuração.
- Query Routers: Query Routers são basicamente mongos instances que fazem a interface com os aplicativos clients e operações diretas com o shard apropriado. Os processos de consulta e de roteamento visa operações para os shards e retornar resultados para os clients. Um Sharded Cluster pode conter mais do que um roteador de consulta ( Query Router) para dividir a carga de solicitações do client. Um client envia as solicitações para um roteador consulta. Geralmente um Sharded Cluster possue muitos roteadores consulta.
quarta-feira, 21 de maio de 2014
MongoDB Overview
MongoDB é um banco de dados multi-plataforma orientado ao documento que fornece alta performance, alta disponibilidade e fácil escalabilidade. MongoDB funciona no conceito de coleções de documentos.
Banco de Dados
Banco de dados é um recipiente físico para coleções. Cada banco de dados tem o seu próprio conjunto de arquivos no sistema de arquivos. Um único servidor MongoDB normalmente tem vários bancos de dados.
Coleções (Collection)
Collection é um grupo de documentos MongoDB. É o equivalente de uma tabela de RDBMS. Uma coleção existe dentro de um único banco de dados. Coleções não impõem um esquema. Documentos dentro de uma coleção pode ter diferentes campos. Normalmente, todos os documentos em uma coleção são propositalmente semelhantes ou afins.
Documento
Um documento é um conjunto de pares de valores-chave. Documentos têm esquema dinâmico. Esquema dinâmico significa que os documentos na mesma coleção não precisam ter o mesmo conjunto de campos ou estrutura e campos comuns em documentos de uma coleção podem conter diferentes tipos de dados.
Exemplo:
O exemplo abaixo mostra a estrutura do documento de um blog onde uma simples vírgula separa o par valor da chave.
{
_id:ObjectId(7df78ad8902c)
title:'MongoDB - Guia Rapido',
description:'MongoDB - Guia Rapido',by:'MongoDBWise',
url:'http://www.mongodbwise.worpress.com',
tags:['mongodb','database','NoSQL'],
likes:100,
comments:[{
user:'user1',
message:'My first comment',
dateCreated:newDate(2014,5,21,2,15),
like:0},{
user:'user2',
message:'My second comments',
dateCreated:newDate(2014,5,21,7,45),
like:5}]}
terça-feira, 20 de maio de 2014
09:48
Paulo Fagundes
Java, MongoDB, Tutoriais
No comments
Instalação
Antes de começar a usar o MongoDB com nossos programas em Java, precisamos ter certeza de que temos informações MongoDB Java Driver JDBC e configurar sua máquina.
Você pode verificar no Java tutorial como instalar o Java em sua máquina. Agora, vamos verificar como configurar o MongoDB JDBC driver.
- Você precisa baixar o arquivo mongo.jar. Certifique-se de baixar a ultima versão do mesmo.
- Você precisa incluir o mongo.jar em seu classpath.
Conecte-se ao banco de dados
Para conectar banco de dados, você precisa especificar o nome do banco de dados, se não existir, então será criado automaticamente pelo MongoDB.
Trechos do código para se conectar ao banco de dados seria a seguinte:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
08:16
Paulo Fagundes
2.6, 2.6.1, MongoDB, Review
No comments
O que há de novo no MongoDB 2.6.1?
A nova release liberada no ultimo dia 5 de Maio de 2014 traz as seguintes alterações que afetam tanto as versões Standart Enterprise Edition, são elas:
- Fix para instalar serviço MongoDB no Windows com a opção --install SERVER-13515.
- Permite atualização direta de 2.4.x para 2.6.0 via yum SERVER-13563.
- Correção de problemas com Backgrounds Index em secundários: SERVER-13589 e SERVER-13620.
- Redigir informações de credencial passada como opções de inicialização: SERVER-13644.
- 2.6.1 Changelog.
- Todas as questões fechadas no 2.6.1
Outras Correções:
Estabilidade
- Falha de banco de dados de reparação pode apagar arquivos de banco de dados - SERVER-13739
Aggregation Enhancements
O aggregation pipeline adiciona a capacidade de retornar conjuntos de resultados de qualquer tamanho, ou retornando um cursor ou escrever a saída para uma coleção. Além disso, o aggregation pipeline suporta variáveis e adiciona novas operações para lidar com conjuntos de dados e redigir dados.
- O db.collection.aggregate () agora retorna um cursor, que permite que o aggregation pipeline retornae conjuntos de resultados de qualquer tamanho.
- Aggregation pipelines agora suportam uma operação explain para auxiliar a análise de operações de agregação.
- Aggregation agora pode usar um processo de classificação baseado em discos externos mais eficientes.
sábado, 17 de maio de 2014
Neste artigo vamos ver como implementar uma replicação MongoDB em 3 passos de maneira bem simples.
Para começar, vamos seguir os passos a seguir:
- Criar os diretórios de dados
- Criar o conjunto de replicação e as instâncias
- Configure os nós primário, secundario e um árbitro
Passo 1) Crie os diretórios de dados
Comece criando um diretório de dados para cada membro do conjunto de réplica, um para o primário,outro para o secundário e também adicionar um árbitro. O árbitro não replica os dados, mas escolhe um novo primário, caso haja uma interrupção do primário existente.
mkdir /mongodb/0/node1mkdir /mongodb/0/node2
mkdir /mongodb/0/arbiter
Passo 2) Criar o conjunto de replicação e as instâncias
Em seguida, comece cada membro como um mongod separado. Desde que você esteja rodando cada processo na mesma máquina, é provavelmente mais fácil de começar cada mongod em uma janela de terminal separado:
mongod --replSet cadastro --dbpath /mongodb/0/node1 --port 40001--smallfilesmongod --replSet cadastro --dbpath/mongodb/0/node2 --port 40002 --smallfilesmongod --replSet cadastro --dbpath /mongodb/0/arbiter --port 40003--smallfiles
sexta-feira, 16 de maio de 2014
10:29
Paulo Fagundes
lock, MongoDB, repair, Tutoriais
No comments
Ao tentar subir os serviços do MongoDB surge o seguinte erro
old lock file: /data/db/mongod.lock. probably means unclean shutdown recommend removing file and running --repair see: http://dochub.mongodb.org/core/repair for more information
Este erro ocorre também quando encerramos o MongoDB de maneira errada, como por exemplo, um Kill no processo mongod, quando a maneira correta seria executar o comando db.shutdownServer() no console.
Como resolver este problema:
Você deve ir ao diretório /data/db caso tenha efetuado uma inicialização default e localizar o arquivo mongod.lock.
-rwxr-xr-x. 1 mongod mongod 5 May 16 13:26 mongod.lockCaso o diretório não exista, calma, execute um find
[root@Mongo01 /]# find / -name mongod.lock
/var/lib/mongo/mongod.lock
Pronto, agora verifique o tamanho do arquivo
-rwxr-xr-x. 1 mongod mongod 5 May 16 13:26 mongod.lock
Se o arquivo mongod.lock no diretório especificado pelo dbpath, seja /data/db por padrão ou outro de sua preferêrncia, não for um arquivo de zero bytes, então o mongod irá se recusas a iniciar.
Como você pode ver acima, o arquivo não está com 0 Bytes, portanto, podemos proceder de duas maneiras :
- Deletar o arquivo mongod.lock
Para limpar seus arquivos de dados sem preservar os arquivos originais, não utilize a opção-repairpath
a.Remova o arquivo de bloqueio obsoleto
rm /data/db/mongod.lock
Substitua /data/db com seu dbpath onde estão os arquivos de dados do MongoDB.
Atenção: Depois de remover o arquivo mongod.lock você deve executar o processo de reparação (-repair) de antes de usar o banco de dados.
b. Inicie o MongoDB utilizando o comando -repair para ler os arquivos de dados já existentes
mongod --dbpath /data/db --repair
Quando isso for concluído, os arquivos de dados reparados irão substituir os arquivos de dados originais no diretório /data/db.
c.Inicie o mongod usando a seguinte a seguinte linha de comando para apontar o dbpath para /data/db:
mongod --dbpath /data/db
2. Restaurando o MongoDB através do -repair
a. Crie um novo diretório para o dbpath
mongod –dbpath /data/db –repair –repairpath /data/db0Com isso o Mongo irá criar um novo diretório e mover o arquivo de bloqueio antigo / reparado para o novo diretório. Para evitar problemas com permissões. você pode criar manualmente o novo diretório:
sudo mkdir /data/db/db0Após executar o repair, você pode acompanhar o feedback na linha de comando
[root@Mongo01 mongo] sudo mongod –dbpath /data/db –repair –repairpath /data/db0
Sun Jan 6 22:33:30 Mongo DB : starting : pid = 16652 port = 27017 dbpath = /data/db master = 0 slave = 0 32-bit
Sun Jan 6 22:33:30 finished checking dbs
Sun Jan 6 22:33:30 dbexit:
Sun Jan 6 22:33:30 shutdown: going to close listening sockets…
Sun Jan 6 22:33:30 shutdown: going to flush oplog…
Sun Jan 6 22:33:30 shutdown: going to close sockets…
Sun Jan 6 22:33:30 shutdown: waiting for fs preallocator…
Sun Jan 6 22:33:30 shutdown: closing all files…
Sun Jan 6 22:33:30 closeAllFiles() finished
Sun Jan 6 22:33:30 shutdown: removing fs lock…
Sun Jan 6 22:33:30 dbexit: really exiting now
Pronto, seu ambiente está novamente operacional.
quinta-feira, 15 de maio de 2014
09:18
Paulo Fagundes
Java, MongoDB, Scripts, Shell, Tutoriais
No comments
Vamos ver um exemplo bem simples.
print('===== Script =====');
print(db.getCollectionNames()); // prints all collection names in respective database
print(db.myCollection.count()); // prints the count of myCollection collection.Comando para executar o Shell no script
mongo 127.0.0.1/my-profile-db --username='username' --password='pwd' mongodb-script.js
mongodb-script.js é o script shell.
Basicamente, este é apenas um comando normal de conexão mongodb para executar o script após conectar.






.png)
















