Giter Site home page Giter Site logo

aula-mongo-db's Introduction

Mongo DB

O que é Mongo DB

O Mongo DB é um banco de dados não relacional (no-sql) capaz de armazenar "documentos" tipo JSON. No nosso contexto de python, podemos pensar no mongo como um repositório para dicionários que provê persistência e busca.

Termos a prióri:

Banco de dados Coleção Documento Atributos

Operações básicas

Em desenvolvimento nos referimos muito ao termo CRUD, abreviação de:

  • Create(Criar),
  • Read(Ler),
  • Update(Atualizar), e
  • Delete(Deletar).

Inserir um documentos

user = {
    'username': 'r',
    'admin': True,
}
mongo.db.users.insert_one(user)

Inserir múltiplos documentos

albums = [
    {
        "title": "System of a Down",
        "released": "June 30, 1998"
    },
    {
        "title": "Toxicity",
        "released": "September 4, 2001"
    },
    {
        "title": "Steal This Album!",
        "released": "November 26, 2002"
    },
    {
        "title": "Mezmerize",
        "released": "May 17, 2005"
    },
    {
        "title": "Hypnotize",
        "released": "November 22, 2005"
    }
]
mongo.db.albums.insert_many(albums)

Ler um documento

album = mongo.db.albums.find_one({'title':'Mezmerize'})
print(album)

Ler múltiplos documentos

for book in mongo.db.books.find({'author': 'Douglas Noel Adams'}):
    print(book)

Atualizar um documento

filter = { 'codigo_do_pedido': 'ABCD' }
new_values = {"$set": { 'status': 'aprovado' }}
mongo.db.vendas.update_one(filter, new_values)

Atualiza múltiplos documentos

# atualiza todos os produtos, para terem desconto de 10%
filter = {}
new_values = {"$set": { 'desconto_percentual': 10 }}
mongo.db.produtos.update_many(filter, new_values )

Apagar um documentos

mondo.db.users.delete_one({'user': 'guest'})

Apagar múltiplos documentos documento

filter = {"Name": {"$regex": "^A"}}
mongo.db.my_collection.delete_many(filter)

Nosso projeto de test

REQ1: Construir uma API de telemetria com duas rotas:

  • POST /telemetry - Essa rota deve receber uma leitura de telemetria no formato JSON, contendo valores para vários atributos e armazena-la.
    Exemplo de requisição:
curl --request POST \
  --url http://localhost:5000/telemetry \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: Insomnia/2023.5.6' \
  --data '{
	"temperature": 36.0,
	"pressure": 1022
}'
  • GET /query/<attribute> - Essa rota deve retornar todas as leituras de um atributo dado um intervalo de tempo.
    Exemplo de requisição:
curl --request GET \
  --url http://localhost:5000/query/temperature \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: Insomnia/2023.5.6' \
  --data '{
	"begin": "2023-07-29T00:00:00",
	"end": "2023-08-29T23:59:59"
}'

REQ2: Os devem ser enviados no formato JSON REQ3: Os timestamps devem ser no formato ISO

aula-mongo-db's People

Contributors

rafaelfigueiredo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.