Corsi on-line

DISTINCT in MongoDB

Chi utilizza i database relazionali per la memorizzazione e la gestione dei dati utilizza solitamente una sintassi SQL sul modello della seguente per estrarre una sola volta ogni diversa occorenza riscontrata in un dato campo:

SELECT DISTINCT(campo) FROM tabella WHERE campo = 'valore'

Ora, in un database NoSQL come MongoDB non abbiamo un comando come DISTINCT per effettuare lo stesso tipo di operazioni, ma una “key” denominata appunto “distinct”, che potremmo utilizzare nel modo seguente:

<?php
// inserimento dati
$utente = $db->utente;
$utente->insert(array("nome" => "Lino", "anni" => 20));
$utente->insert(array("nome" => "Pino", "anni" => 37));
$utente->insert(array("nome" => "Rino", "anni" => 37));
$utente->insert(array("nome" => "Zino", "anni" => 99));
// creazione dell'array sulla base della key "distinct"
$query_anni = $db->command(array("distinct" => "utente", "key" => "anni"));
// estrazione dei dati
foreach ($query_anni['values'] as $val) {
    echo "$val\n";
}
?>

Verranno stampati i valori “20”, “37” e “99”, questo perché nonostante i valori registrati nell’array siano quattro, “37” è però ripetuto due volte, esattamente come accade nell’utilizzo della clausola DISTINCT in SQL.

Post correlati
I più letti del mese
Tematiche