<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mauricio de Amorim &#187; mongoDB</title>
	<atom:link href="http://mauriciodeamorim.com.br/tag/mongodb/feed/" rel="self" type="application/rss+xml" />
	<link>http://mauriciodeamorim.com.br</link>
	<description>Tecnologia e desenvolvimento web</description>
	<lastBuildDate>Tue, 21 Feb 2012 22:09:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Criando atalhos para o MongoDB</title>
		<link>http://mauriciodeamorim.com.br/2010/02/22/criando-atalhos-para-o-mongodb/</link>
		<comments>http://mauriciodeamorim.com.br/2010/02/22/criando-atalhos-para-o-mongodb/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 00:05:20 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[mongoDB]]></category>
		<category><![CDATA[NoSql]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=590</guid>
		<description><![CDATA[Perdi a conta de quantas vezes tive que relembrar qual era o caminho para subir o MongoDB ou para abrir o Shell para fazer alguma pesquisa. Para simplificar configurei o PATH e criei um ALIAS no arquivo .bashrc. Seguem os passos para fazer isto rapidinho. Abra o arquivo .bashrc com sudo pelo terminal. Onde &#8220;Yourusername&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Perdi a conta de quantas vezes tive que relembrar qual era o caminho para subir o MongoDB ou para abrir o Shell para fazer alguma pesquisa. Para simplificar configurei o PATH e criei um ALIAS no arquivo .bashrc. </p>
<p>Seguem os passos para fazer isto rapidinho.</p>
<p>Abra o arquivo .bashrc com sudo pelo terminal. Onde &#8220;Yourusername&#8221; deve ser substituído pelo seu nome de usuário.</p>
<pre style="padding-left:10px; color:white; background:black">
sudo gedit /home/Yourusername/.bashrc
</pre>
<p>Ou simplesmente.</p>
<pre style="padding-left:10px; color:white; background:black">
sudo gedit ~/.bashrc
</pre>
<p>Vá até o final do arquivo e insira as linhas.</p>
<pre style="padding-left:10px; color:black; background:white">
#Path configuration to MongoDB
export PATH=$PATH:/opt/mongo/bin/
</pre>
<p>Antes de salvar e fechar inclua também no mesmo arquivo um alias para inicializar o serviço. Estou considerando que você seguiu <a href="http://mauriciodeamorim.com.br/2010/01/04/mongodb-no-ubuntu-910/" target="_blank">este</a> tutorial para instalar o MongoDB, caso contrário é necessário saber onde o MongoDB está instalado e em qual pasta os dados serão armazenados.</p>
<pre style="padding-left:10px; color:black; background:white">
#Alias to initialize the MongoDB in the simple way
    alias mongod='mongod --dbpath ~/projetos/tools/mongo/data/db'
</pre>
<p>Feito isto salve o arquivo, feche o terminal e abra novamente para reconhecer as atualizações de configuração e pronto, de qualquer diretório basta digitar <strong><em>mongod</em></strong> para iniciar o Mongo e apenas <strong><em>mongo</em></strong> para abrir o Shell.</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/02/22/criando-atalhos-para-o-mongodb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Manipulando dados pelo shell do MongoDB</title>
		<link>http://mauriciodeamorim.com.br/2010/02/21/manipulando-dados-pelo-shell-do-mongodb/</link>
		<comments>http://mauriciodeamorim.com.br/2010/02/21/manipulando-dados-pelo-shell-do-mongodb/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 04:10:05 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[mongoDB]]></category>
		<category><![CDATA[NoSql]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=546</guid>
		<description><![CDATA[Assim como o MySql o MongoDB tem um shell para manipular dados diretamente na base, seguem os comandos (CRUD) básicos para inserir, buscar, atualizar e apagar documentos. Para inicializar o shell: /opt/mongo/bin/./mongo Se tiver algum problema com este comando então faça isto: cd /opt/mongo/bin/ ./mongo ** Neste post mostro como criar um atalho As linhas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mongodb.org/display/DOCS/Home" target="_blank"><img class="alignleft size-full wp-image-581" style="padding: 10px;" title="MongoDB" src="http://mauriciodeamorim.com.br/wp-content/uploads/2010/02/PoweredMongoDBgreen50.png" alt="" width="129" height="59" /></a> Assim como o MySql o MongoDB tem um shell para manipular dados diretamente na base, seguem os comandos (CRUD) básicos para inserir, buscar, atualizar e apagar documentos.</p>
<p>Para inicializar o shell:</p>
<pre>/opt/mongo/bin/./mongo</pre>
<p>Se tiver algum problema com este comando então faça isto:</p>
<pre>cd /opt/mongo/bin/</pre>
<pre>./mongo</pre>
<div><em><a style="color: #316AC5; font-size: 12px;" href="http://mauriciodeamorim.com.br/2010/02/22/criando-atalhos-para-o-mongodb/" target="_blank"> ** Neste post mostro como criar um atalho</a></em></div>
<p>As linhas abaixo serão exibidas:</p>
<pre style="color: white; background: black; padding-left: 10px;">MongoDB shell version: 1.3.3-
url: test
connecting to: test
type "help" for help
<span style="color: yellow;">&gt;</span>
</pre>
<p>Os comandos iniciais são:</p>
<table>
<tbody>
<tr>
<td>show dbs</td>
<td>Mostra todas as bases de dados</td>
</tr>
<tr>
<td>use <em>dbname</em></td>
<td>Aponta a váriavel &#8220;db&#8221; para a base digite no lugar de <em>dbname</em></td>
</tr>
<tr>
<td>show collections</td>
<td>Exibi as coleções da base em uso. As collections &#8220;equivalem&#8221; as tables nos bancos relacionais.</td>
</tr>
<tr>
<td>db.collection_name.insert(<em>object</em>)</td>
<td>Cria um documento</td>
</tr>
<tr>
<td>db.collection_name.find()</td>
<td>Exibi os documentos da coleção</td>
</tr>
<tr>
<td>db.collection_name.update(<em>criteria_object_or_pair_key_value</em>)</td>
<td>Atualiza um documento com o critério ou chave par/valor definido</td>
</tr>
<tr>
<td>db.collection_name.remove(<em>criteria_object_or_pair_key_value</em>)</td>
<td>Remove um ou mais documentos com o critério ou chave par/valor definido</td>
</tr>
</tbody>
</table>
<p>Vamos à prática para exemplificar os comandos acima. Abaixo estamos verificando as bases existentes, definindo que usaremos a base &#8220;local&#8221;, confirmando que estamos na base correta e mostrando as coleções que neste caso ainda não existem.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt; show dbs</span>
admin
local
<span style="color: yellow;">&gt;use local</span>
switched to db local
<span style="color: yellow;">&gt; db</span>
local
<span style="color: yellow;">&gt;show collections</span>
false
</pre>
<p>Agora vamos criar uma coleção de documentos chamada &#8220;minha_colecao&#8221; e inserir alguns dados.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt;db.minha_colecao.insert({ nome: "Mauricio", fone: "12345678",  idade: 10 })</span>
ObjectId("4b808e9a6eff")
</pre>
<p>Quando exibimos as coleções novamente temos &#8220;minha_colecao&#8221; e &#8220;system.indexes&#8221; sendo a última criada automaticamente.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt;show collections</span>
minha_colecao
system.indexes
</pre>
<p>Podemos verificar nossos documentos criados e inserir outros.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{ "_id" : ObjectId("4b808e9a6eff"), "nome" : "Mauricio", "fone" : "5678", "idade" : 10 }
<span style="color: yellow;">&gt;db.minha_colecao.insert({ nome: "Monet", fone: "000",  idade: 100 })</span>
ObjectId("4b912e9a6ef4")
<span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{ "_id" : ObjectId("4b808e9a6eff"), "nome" : "Mauricio", "fone" : "5678", "idade" : 10 }
{ "_id" : ObjectId("4b912e9a6ef4"), "nome" : "Monet", "fone" : "000", "idade" : 100 }
</pre>
<p>Para atualizar os documentos podemos após o hash passar o parâmetro &#8220;true&#8221; que força uma inserção caso o critério utilizado não seja encontrado.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt;db.minha_colecao.update({nome: "Mauricio"}, {nome: "Amorim", fone: "000"}, true)</span>
<span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{ "_id" : ObjectId("4b808e9a6eff"), "nome" : "Amorim", "fone" : "000", "idade" : 10 }
{ "_id" : ObjectId("4b912e9a6ef4"), "nome" : "Monet", "fone" : "000", "idade" : 100 }
<span style="color: yellow;">&gt;db.minha_colecao.update({nome:"Inexistente"},{nome:"Insere novo", fone:"2355"}, true)</span>
<span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{ "_id" : ObjectId("4b808e9a6eff"), "nome" : "Amorim", "fone" : "000", "idade" : 10 }
{ "_id" : ObjectId("4b912e9a6ef4"), "nome" : "Monet", "fone" : "000", "idade" : 100 }
{ "_id" : ObjectId("4b987e9a6e10"), "nome" : "Insere novo", "fone" : "2355"}
</pre>
<p>Por último vamos remover todos os documentos seguindo um determinado critério, neste caso o &#8220;fone&#8221; igual a &#8220;000&#8243;. <strong>Cuidado! Se o parâmetro com um critério não for informado todos os documentos da coleção serão removidos.</strong></p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt;db.minha_colecao.remove({fone: "000"})</span>
<span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{ "_id" : ObjectId("4b987e9a6eff"), "nome" : "Insere um novo", "fone" : "2355"}
</pre>
<p>As funções utilizadas acima também podem receber um objeto como parâmetro e seu funcionamento será idêntico.</p>
<pre style="color: white; background: black; padding-left: 10px;"><span style="color: yellow;">&gt; xyz = { nome: "Monet", fone: "111", profissao: "artista" }</span>
<span style="color: yellow;">&gt;db.minha_colecao.insert(xyz)</span>
ObjectId("18b12e9a6ef4")
<span style="color: yellow;">&gt;db.minha_colecao.find()</span>
{"_id": ObjectId("18b12e9a6ef4"), "nome":"Monet", "fone" : "111", "profissao" : "artista" }
</pre>
<p>Estes são comandos básicos de manipulação de dados, mais informações podem ser encontradas nas referências abaixo. Recomendo os <a href="http://www.teachmetocode.com/screencasts/introduction-to-mongodb-part-i" target="_blank">screencasts do Joon You</a> que são bem práticos.</p>
<p><strong>Referências:</strong><br />
<a href="http://www.mongodb.org/display/DOCS/DBA+Operations+from+the+Shell" target="_blank">MongoDB DBA Operations</a><br />
<a href="http://www.mongodb.org/display/DOCS/Advanced+Queries" target="_blank">MongoDB Advanced Queries</a><br />
<a href="http://www.teachmetocode.com/screencasts/introduction-to-mongodb-part-i" target="_blank">Screencast &#8211; Introduction MongoDB with Joon You</a><br />
<a href="http://mongo.kylebanker.com/" target="_blank">The interactive shell by Kyle</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/02/21/manipulando-dados-pelo-shell-do-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MongoDB no Ubuntu 9.10</title>
		<link>http://mauriciodeamorim.com.br/2010/01/04/mongodb-no-ubuntu-910/</link>
		<comments>http://mauriciodeamorim.com.br/2010/01/04/mongodb-no-ubuntu-910/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 17:28:07 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[mongoDB]]></category>
		<category><![CDATA[NoSql]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://amorim.tecnologia.ws/blog2/?p=491</guid>
		<description><![CDATA[Atualizado em 20/02/2010 Algumas pessoas estão obtendo o seguinte erro ao tentar iniciar o serviço do MongoDB: ./mongod: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory Isto acontece após a atualização do Firefox no Ubuntu para versões superiores a 3.5, comigo ocorreu na versão 3.5.7,  porque o [...]]]></description>
			<content:encoded><![CDATA[<h4><span style="color: #0000ff;"><strong>Atualizado em 20/02/2010</strong></span></h4>
<p><em>Algumas pessoas estão obtendo o seguinte erro ao tentar iniciar o serviço do MongoDB:</em></p>
<p><strong><em>./mongod: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory</em></strong></p>
<p><em>Isto acontece após a atualização do Firefox no Ubuntu para versões superiores a 3.5, comigo ocorreu na versão 3.5.7,  porque o FF atualiza algum pacote do xulrunner e da biblioteca libmozjs.so ou algo similar.<br />
Para corrigir isto é necessário recompilar o mongodb. Eu refiz a instalação a partir do SpiderMonkey e tudo voltou a funcionar.</em></p>
<p>Primeiramente fiz esta instalação direto no Ubuntu 9.10, acho que deve funcionar para a versão 9.04 também. O processo de instalação na verdade é mais cansativo do que complicado, precisa de uma conexão razoável para baixar todos os pacotes.</p>
<p>Então vamos começar removendo pacotes não utilizados:</p>
<pre>sudo apt-get autoremove</pre>
<p>Instalando as dependências:</p>
<pre>sudo apt-get -y install tcsh git-core scons g++</pre>
<pre>sudo apt-get -y install libpcre++-dev libboost-dev</pre>
<pre>sudo apt-get -y install libreadline5-dev xulrunner-1.9.1-dev</pre>
<p>Instale o <a href="http://www.mozilla.org/js/spidermonkey" target="_blank">SpiderMonkey</a> que é uma implementação em C de JavaScript</p>
<pre>cd ~
mkdir tmp &amp;&amp; cd tmp
wget ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
tar -zxvf js-1.7.0.tar.gz
cd js/src
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
make -f Makefile.ref
sudo JS_DIST=/usr make -f Makefile.ref export</pre>
<p>Faça o download do MongoDB via git</p>
<pre>cd ~/tmp
git clone git://github.com/mongodb/mongo.git</pre>
<p>Agora basta instalar o mongoDB</p>
<pre>cd mongo
scons all
sudo scons --prefix=/opt/mongo install</pre>
<p>Para testá-lo crie um diretório:</p>
<pre>mkdir -p ~/testing/mongo/data/db</pre>
<p>e inicie o MongoDB:</p>
<pre>/opt/mongo/bin/mongod --dbpath ~/testing/mongo/data/db</pre>
<div><em><a style="color: #316AC5; font-size: 12px;" href="http://mauriciodeamorim.com.br/2010/02/22/criando-atalhos-para-o-mongodb/" target="_blank"> ** Neste post mostro como criar um atalho</a></em></div>
<p>Se tudo ocorreu bem, acessando o endereço http://localhost:28018 você obterá informações sobre o MongoDB em ação.</p>
<p><strong>Um pouco de prática:</strong><br />
- <a href="http://akitaonrails.com/2009/12/23/comecando-com-mongo-db" target="_blank">Começando com MongoDB</a><br />
- <a href="http://railscasts.com/episodes/194-mongodb-and-mongomapper" target="_blank">MongoDB and MongoMapper</a></p>
<p><strong>Referências:</strong><br />
- <a href="http://www.mongodb.org/display/DOCS/Building+for+Linux#BuildingforLinux-Ubuntu9.04and9.10" target="_blank">Building for Linux</a><br />
- <a href="http://www.customr.net/streams/2009/testing/building-mongodb-on-ubuntu.html">Building mongodb on Ubuntu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/01/04/mongodb-no-ubuntu-910/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

