From b8ec2efdeba975ecc36f42eb33d7a8f8472e5cf7 Mon Sep 17 00:00:00 2001
From: Stefano Pigozzi
Date: Tue, 4 Oct 2022 17:56:12 +0200
Subject: [PATCH] I think I should not go on until bluelib 5
---
.idea/dataSources.xml | 12 +++++
pages/year4/bigdata/pratica.tsx | 92 +++++++++++++++++++++++++++++++--
2 files changed, 100 insertions(+), 4 deletions(-)
create mode 100644 .idea/dataSources.xml
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..48e1297
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mongo
+ true
+ com.dbschema.MongoJdbcDriver
+ mongodb://localhost:27017
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/pages/year4/bigdata/pratica.tsx b/pages/year4/bigdata/pratica.tsx
index 6b7757a..e920c9a 100644
--- a/pages/year4/bigdata/pratica.tsx
+++ b/pages/year4/bigdata/pratica.tsx
@@ -1,8 +1,10 @@
-import {Heading, Chapter, Box, ListUnordered, ListOrdered, Parenthesis, Idiomatic as I, BringAttention as B, UAnnotation as U, Dialog, Quote, Code} from "@steffo/bluelib-react"
+import {Bluelib, Heading, Chapter, Box, ListUnordered, ListOrdered, Parenthesis, Idiomatic as I, BringAttention as B, UAnnotation as U, Dialog, Quote, Code, Anchor, Variable, Panel} from "@steffo/bluelib-react"
import type { NextPage, NextPageContext } from 'next'
import { Link } from '../../../components/link'
+const r = String.raw
+
export async function getStaticProps(_context: NextPageContext) {
return {
props: {}
@@ -62,10 +64,16 @@ const Page: NextPage = () => {
Glossario di MongoDB
-
+
Documenti
+
+ Raccolte di dati in formato BSON (simil-JSON binario).
+
+
+ Come i record di un database relazionale!
+
@@ -75,7 +83,7 @@ const Page: NextPage = () => {
Insiemi di documenti senza uno schema fisso, ma con un indice in comune.
- Come le tabelle relazionali, ma più flessibili!
+ Come le tables relazionali, ma più flessibili!
@@ -85,6 +93,9 @@ const Page: NextPage = () => {
Insiemi di collezioni.
+
+ È esattamente uguale al mondo relazionale. Non c'è molto da dire a riguardo.
+
@@ -110,7 +121,7 @@ const Page: NextPage = () => {
Inserimento di un dato come documento annidato all'interno di un documento.
- Più veloce a costo di spazio, per operazioni molto frequenti.
+ Fornisce data locality, quindi è più veloce per operazioni molto frequenti, ma a costo di spazio di archiviazione.
@@ -125,6 +136,79 @@ const Page: NextPage = () => {
+
+
+ Accedere a MongoDB
+
+
+
+ Override
+
+
+ Il prof. consiglia di usare Robo 3T, ma è end-of-life.
+
+
+ In questo sito userò invece la shell integrata a IntelliJ IDEA Ultimate.
+
+
+ Tutte le differenze saranno evidenziate in magenta.
+
+
+
+
+
+
+ Creazione
+
+
+ Il metodo consigliato nelle slides, db.COLLEZIONE.insert(...)
, è deprecato.
+
+
+ È possibile inserire un documento all'interno di una collezione con:
+
+
+ db.COLLEZIONE
.insertOne(DOCUMENTO)
+
+
+ È possibile inserire tanti documenti all'interno della stessa collezione con:
+
+
+ db.COLLEZIONE
.insertMany([DOCUMENTO1, DOCUMENTO2, ...])
+
+
+
+
+ Ricerca
+
+
+ È possibile recuperare tutti i documenti di una collezione con:
+
+
+ db.COLLEZIONE.find()
+
+
+ È possibile effettuare filtraggio e proiezione tramite le opzioni FILTRI e PROIEZIONI di find
:
+
+
+ db.COLLEZIONE.find({"{"}...FILTRI{"}"}, {"{"}...PROIEZIONI{"}"})
+
+
+ È anche possibile effettuare ordinamenti e limitazioni:
+
+
+ db.COLLEZIONE
+ .find(...)
+ .sort({"{"}...CRITERI{"}"})
+ .limit(LIMITE)
+
+
+ Oppure recuperare un documento solo, invece che un array di documenti:
+
+
+ db.COLLEZIONE.findOne(...)
+
+
+
>
}