https://github.com/regis-amaral/__studies__mongo
Estudos sobre MongoDB - Programa +Devs2Blu 2023
https://github.com/regis-amaral/__studies__mongo
mongo-db studies
Last synced: 3 months ago
JSON representation
Estudos sobre MongoDB - Programa +Devs2Blu 2023
- Host: GitHub
- URL: https://github.com/regis-amaral/__studies__mongo
- Owner: regis-amaral
- Created: 2023-08-09T22:26:36.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-16T20:38:58.000Z (almost 2 years ago)
- Last Synced: 2025-01-21T08:45:08.202Z (4 months ago)
- Topics: mongo-db, studies
- Homepage:
- Size: 151 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
1. **Criação de Banco de Dados e Coleção:**
- Crie um banco de dados chamado "ravin";
- Crie uma coleção chamada "menus" dentro do banco de dados "ravin";
- O menu deve conter os seguintes campos:
- Code (Required)
- Name (Required)
- Description
- Produtos (Required)
- Cada produto deve conter os seguintes campos:
- Code (Required)
- Name (Required)
- Price (Required)
- PreparationTime
- ProductType (DRINK, FOOD, DESSERT) (Required)
- Comments
- HasActive (Required)
2. **Inserção de Documentos:**
- Crie um novo documento que contenha os menus e os produtos de cada menu;
- Insira 10 produtos em cada menu;
3. **Consulta de Documentos:**
- Recupere todos os documentos da coleção "menus".```
db.menus.find()
```- Recupere todos os produtos que são DRINKS;
```
db.menus.aggregate([
{
$unwind: "$products"
},
{
$match: {"products.productType": "DRINK"}
},
{
$project: {_id: 0, product: "$products"}
}
])
```
- Recupere todos os projetos que custem mais que 50.00
4. **Atualização de Documentos:**```
db.menus.updateOne({"code": "MENU1"}, {$set: {name: "Cardápio de BlumenHell"}})
```- Atualize os o valor de todos DESSERTS acrescentando 10% do valor anterior;
```
db.menus.updateMany(
{ "products.productType": "DESSERT" },
{ $mul: { "products.$[x].price": 1.1 }},
{ arrayFilters: [{"x.productType": "DESSERT"}]}
);
```5. **Remoção de Documentos:**
- Remova 1 produto de cada cardápio;
```
db.menus.updateMany({}, {$pop: {"products": -1}})
```
- Remova todos os produtos que custem menos de 1.006. **Ordenação e Limite:**
- Recupere os documentos da coleção "menu" ordenados por idade de forma descendente.
db.menus.find({}).sort({"code": -1})
- Recupere os três documentos mais novos da coleção "users".7. **Índices Simples:**
- Crie um índice ascendente na chave "nome" na coleção "produto".
```
db.menus.createIndex({"products.code": 1})
```