In [1]:
# Versão da Linguagem Python
from platform import python_version
print('Versão da Linguagem Python Usada Neste Jupyter Notebook:', python_version())
In [ ]:
# Instala o pacote pymongo para conectar no banco de dados MongoDB
!pip install -q pymongo
In [1]:
# Importamos o MongoClient para conectar nossa aplicação ao MongoDB
from pymongo import MongoClient
In [2]:
# Estabelecemos a conexão ao Banco de Dados
conn = MongoClient('localhost', 27017)
In [3]:
type(conn)
Out[3]:
In [4]:
# Uma única instância do MongoDB pode suportar diversos bancos de dados.
# Vamos criar o banco de dados cadastrodb
db = conn.cadastrodb
In [5]:
type(db)
Out[5]:
In [6]:
# Uma coleção é um grupo de documentos armazenados no MongoDB
# (relativamente parecido com o conceito de tabelas em bancos relacionais)
collection = db.cadastrodb
In [7]:
type(collection)
Out[7]:
Uma nota importante sobre coleções (e bancos de dados) no MongoDB é que eles são criados posteriormente - nenhum dos comandos acima executou efetivamente qualquer operação no servidor MongoDB. Coleções e bancos de dados são criados quando o primeiro documento é inserido.
In [8]:
import datetime
Dados no MongoDB são representados (e armazenados) usando documentos JSON (Java Script Object Notation). Com o PyMongo usamos dicionários para representar documentos.
In [9]:
post1 = {"codigo": "ID-9987725",
"prod_name": "Geladeira",
"marcas": ["brastemp", "consul", "elecrolux"],
"data_cadastro": datetime.datetime.utcnow()}
In [10]:
type(post1)
Out[10]:
In [11]:
collection = db.posts
In [12]:
post_id = collection.insert_one(post1)
In [13]:
post_id.inserted_id
Out[13]:
In [14]:
# Quando um documento é inserido uma chave especial, "_id", é adicionada
# automaticamente se o documento ainda não contém uma chave "_id".
post_id
Out[14]:
In [15]:
post2 = {"codigo": "ID-2209876",
"prod_name": "Televisor",
"marcas": ["samsung", "panasonic", "lg"],
"data_cadastro": datetime.datetime.utcnow()}
In [16]:
collection = db.posts
In [17]:
post_id = collection.insert_one(post2).inserted_id
In [18]:
post_id
Out[18]:
In [19]:
collection.find_one({"prod_name": "Televisor"})
Out[19]:
In [20]:
# A função find() retorna um cursor e podemos então navegar pelos dados
for post in collection.find():
print(post)
In [21]:
# Verificando o nome do banco de dados
db.name
Out[21]:
In [22]:
# Listando as coleções disponíveis
db.collection_names()
Out[22]: