Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Italian i18n #66

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Currently, `learnyoumongo` is available in:
4. 日本語 Japanese
5. Russian
6. 中文 Chinese
7. Italian

## Author

Expand Down
115 changes: 115 additions & 0 deletions exercises/aggregate/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
Il prossimo è l'aggregazione. L'aggregazione permette di fare cose
come calcolare la somma di un campo su più documenti o la media
di un campo su documenti che rispettano particolari criteri.

Supponiamo di avere una collection chiamata `prices`. Ogni documento prezzo è modellato
in modo simile a:

```js
{
"name": "Tshirt",
"size": "S",
"price": 10,
"quantity": 12
"meta": {
"vendor": "hanes",
"location": "US"
}
}
```

In questo esercizio abbiamo la necessità di calcolare il prezzo medio per tutti
i documenti nella collection `prices` nel database chiamato `learnyoumongo` che
hanno la dimensione che sarà passata come primo argomento della tua script.

Usa `console.log` per stampare il prezzo medio approssimato a 2 decimali
nello `stdout` dopo che lo hai trovato.

-----------------------------------------------------------
## SUGGERIMENTI

Per usare la funzione `aggregate()`, abbiamo prima bisogno della collection.
La funzione `aggregate()` prende un array di oggetti come primo argomento.

Questo array conterrà le diverse pipeline per l'aggregazione.
Per sapere di più sulle pipeline, visita http://docs.mongodb.org/manual/core/aggregation-introduction/.
Per sapere di più su `aggregate()` visita http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#aggregate.

I due stadi principali della pipeline che useremo saranno `$match` e `$group`

### $match

`$match` viene usato in modo simile al modo in cui viene fatto nella query. Esso permette di selezionare
i documenti che rispettano certi criteri.

Es.

```js
var match = { $match: { status: 'A' } }
```

L'esempio precedente corrisponde a tutti i documenti che hanno la
proprietà `status` uguale a `A`.

### $group

`$group` è quelo che ci permette di eseguire operazioni con certe proprietà.

Così, supponiamo di voler calcolare la somma dei valori della proprietà
`value` dove `status` è uguale a `A` e salvare il valore nella proprietà
`total`.

Es.

```js
// [
// { status: 'A', value: 1 },
// { status: 'B', value: 2 },
// { status: 'A', value: 10 }
// ]

collection.aggregate([
{ $match: { status: 'A' }}
, { $group: {
_id: 'total' // Questo potrebbe essere una stringa arbitraria in questo caso
, total: {
// $sum è l'operatore usato qui
$sum: '$value'
}
}}
]).toArray(function(err, results) {
// gestisce l'errore
console.log(results)
// => [
// => { _id: 'total', total: 11 }
// => ]
})
```
Altri operatori usati nello stadio `$group` sono:

- `$avg`
- `$first`
- `$last`
- `$max`
- `$min`
- `$push`
- `$addToSet`

# Arrotondamento

Il prototipo `Number`contiene una funzione `toFixed()` la quale accetta il numero
di decimali al quale vogliamo fare l'arrotondamento e restituisce una rappresentazione
in formato stringa.

var value = "1"
Number(value).toFixed(5)
// => '1.00000'

Se il tuo programma non dovesse finire l'esecuzione, potresti dimenticare
di chiudere `db`. Questo può essere fatto chiamando `db.close()` dopo
che hai finito.

## Risorse
* http://docs.mongodb.org/manual/aggregation/
* http://docs.mongodb.org/manual/core/aggregation-introduction/
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#aggregate
20 changes: 20 additions & 0 deletions exercises/connect/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Avvia mongod sulla porta `27017` con `data` come dbpath

-----------------------------------------------------------
## SUGGERIMENTI

Devi aver creto la directory `data`.

```bash
mkdir data
```

Per avviare mongo sulla porta 27017, esegui `mongod --port 27017 --dbpath=./data`.

Quindi, un un altro terminale, esegui `npm install mongodb`.

Infine esegui `learnyoumongo verify`.

Se questa lezione è completata, assicurati di lasciare `mongod` in eseguzione
in modo che possa essere usato per il resto dell'esercizio.

30 changes: 30 additions & 0 deletions exercises/count/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Qui imparerai come contare il numero dei documenti che rispettano certi criteri.

Usa la collection `parrots` dal database chiamato `learnyoumongo` per
contare tutti i documenti dove `age` è maggiore del primo argomento passato
alla tua script.

Usando `console.log` stampa il numero su `stdout`.

-----------------------------------------------------------
## SUGGERIMENTI

Per contare il numero dei documenti che rispettano certi criteri
dobbiamo usare la funzione `collection.count()`

Ecco un esempio:

```js
collection.count({
name: 'foo'
}, function(err, count) {

})
```

Se il tuo programma non dovesse finire l'esecuzione, potresti dimenticare di
chiudere il `db`. Questo può essere fatto chiamando `db.close()` dopo
che hai finito.

## Risorse
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#count
46 changes: 46 additions & 0 deletions exercises/find/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Qui impareremo come cercare dei documenti.

In questo esercizio il nome del database è `learnyoumongo`.
Quindi l'url dovrebbe essere simile a: `mongodb://localhost:27017/learnyoumongo`

Usa la collection `parrots` per cercare tutti i documenti in cui `age`
è più grande del primo argomento passato alla tua script.

Usando `console.log`, stampa i documenti nello `stdout`.

-----------------------------------------------------------
## SUGGERIMENTI

Per collegarti al database, puoi usare qualcosa di simile a questo:

```js
var mongo = require('mongodb').MongoClient
mongo.connect(url, function(err, db) {
// db da accesso al database
})
```

Per ottenere una collection, puoi usare `db.collection('<collection name>')`.

Per trovare un documento o dei documenti puoi chiamare `find()` sulla collection.

Find è un pò diverso da quello che siamo abituati a verdere.

Per accedere agli argomenti puoi usare l'array di stringhe `process.argv` (il primo argomento è memorizzato in terza posizione `process.argv[2]`). Per convertire un intero puoi usare parseInt()

Ecco un esempio:

```js
collection.find({
name: 'foo'
}).toArray(function(err, documents) {

})
```

Se il tuo programma non termina l'esecuzione, potresti dimenticare di chiudere `db`.
Questo può essere fatto chiamando `db.close()` dopo che hai terminato.

## Risorse:
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#find
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
40 changes: 40 additions & 0 deletions exercises/find_project/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Qui impareremo come cercare documenti ma prendendo solo i campi di cui
abbiamo bisogno. E' anche conosciuta in MongoDB come `proiezione`.

Usa la collection `parrots` dal database `learnyoumongo` per trovare
tutti i documenti dove `age` è più grande del primo argomento passato
alla tua script.

La differenza dalla lezione precedente sarà che noi vogliamo solo
le proprietà `name` e `age`.

Uasndo `console.log` stampa i documenti su `stdout`.

-----------------------------------------------------------
## SUGGERIMENTI

Per trovare un documento o dei documenti puoi chiamare `find()` sulla collection.

Find è un pò diverso da quello che siamo abituati a vedere.ing.

Ecco un esempio:

```js
collection.find({
name: 'foo'
}, {
name: 1
, age: 1
, _id: 0
}).toArray(function(err, documents) {

})
```

Se il tuo programma non finisce l'esecuzione, potresti dimenticare di
chiudere il `db`. Questo può essere fatto chiamando `db.close()` dopo
che hai terminato.

## Risorse:
* http://docs.mongodb.org/manual/reference/method/db.collection.find/#explicitly-exclude-the-id-field
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#find
73 changes: 73 additions & 0 deletions exercises/insert/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Connetti a MongoDB alla porta `27017`.
Dovresti connetterti al database chiamato `learnyoumongo` e inserire
un documento alla collection `docs`.

Il documento dovrebbe essere un documento json con le seguenti proprietà:

- `firstName`
- `lastName`

`firstName` sarà passato come primo argomento della lezione.

`lastName` sarà passato come secondo argomento della lezione.

Usa `console.log` per stampare l'oggetto usato per creare il documento.

Assicurati di usare `JSON.stringify` per convertirlo in JSON.

-----------------------------------------------------------
## SUGGERIMENTI

Ricorda che puoi accedere agli argomenti passati usando `process.argv`.

Per poter usare il pacchetto `mongo` devi prima richiederlo in con:

```js
var MongoClient = require('mongodb').MongoClient
```

Per connettersi usa la funzione `connect()` di `MongoClient`.

Es.

```js
MongoClient.connect(url, function(err, db) {
if (err) throw err

})
```

Se ricevi un errore `Connection Refused`, assicurati che `mongod` sia ancora in esecuzione.

Dopo che ti sei connesso con successo, dovrai specificare una collection.

Puoi farlo chiamando la funzione `collection()` nel `db` restituito
nella callback a `connect`.


Supponiamo che tu voglia specificare una collection chiamata `users`:

```js
var collection = db.collection('users')
```

Per inserire un documento potresti chiamare `insert()` nella collection, come:

```js

// inserimento documento
// { a : 2 }
collection.insert({
a: 2
}, function(err, data) {
// gestisce l'errore

// altre operazioni
})
```

Se il tuo programma non finisse l'esecuzione, potresti dimenticare di
chiudere il `db`. Puoi farlo chiamando `db.close()` quando hai finito.

## Risorse
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#insert
21 changes: 21 additions & 0 deletions exercises/mongod/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Un saluto da `learnyoumongo`. Come prima cosa installiamo MongoDB.
Puoi scaricar MongoDB da `https://www.mongodb.org/downloads`.

Abbiamo bisogno anche di aggiungerlo al tuo `$PATH`.

Non devi creare nessun file come soluzione di questo esercizio.
Semplicemente esegui `learnyoumongo verify` quando hai terminato l'installazione.

-----------------------------------------------------------
## SUGGERIMENTI

Per verificare che `mongod` sia installato, puoi provare ad eseguire `mongod --version`.

Se sei in Windows invece devi usare `mongod.exe`.

Dovrebbe stampare qualcosa di simile a:

```
db version v2.6.8
2015-05-06T09:44:39.362-0500 git version: nogitversion
```
29 changes: 29 additions & 0 deletions exercises/remove/problem.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Questa lezione comporta la rimozione di un documento con il dato `_id`.

Il nome del database sarà accessibile via `process.argv[2]`.

Il nome della collection sarà passato come secondo argomento della tua script.

Il parametro `_id` sarà passato come terzo argomento della tua script.

-----------------------------------------------------------
## SUGGERIMENTI

Per rimuovere un documento puoi dover chiamare `remove()` sulla collection.

Es.

```js

collection.remove({
name: 'foo'
}, callback)
```

Il primo argomento di `remove()` è la query.

Se il tuo programma non termina l'esecuzione, potresti aver dimenticato
di chiudere la `db`. Puoi farlo chiamando `db.close()` appena hai finito.

## Risorse
* http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#remove
Loading