Panoramica del Capitolo

Questo capitolo introduce come impostare il ritorno dei campi specificati nelle query di MongoDB anziché restituire tutti i dati dei campi.

Dati di Test

Inserisci alcuni dati nella collezione dell'inventario

db.inventory.insertMany( [
  { articolo: "giornale", stato: "A", dimensioni: { h: 14, w: 21, uom: "cm" }, disponibile: [ { magazzino: "A", qta: 5 } ] },
  { articolo: "quaderno", stato: "A",  dimensioni: { h: 8.5, w: 11, uom: "in" }, disponibile: [ { magazzino: "C", qta: 5 } ] },
  { articolo: "carta", stato: "D", dimensioni: { h: 8.5, w: 11, uom: "in" }, disponibile: [ { magazzino: "A", qta: 60 } ] },
  { articolo: "agenda", stato: "D", dimensioni: { h: 22.85, w: 30, uom: "cm" }, disponibile: [ { magazzino: "A", qta: 40 } ] },
  { articolo: "cartolina", stato: "A", dimensioni: { h: 10, w: 15.25, uom: "cm" }, disponibile: [ { magazzino: "B", qta: 15 }, { magazzino: "C", qta: 35 } ] }
]);

Formato

{<campo>: 1 o 0}

Spiegazione:

  • - nome del campo
  • 1 rappresenta il ritorno del campo, 0 rappresenta l'esclusione del campo (cioè, non restituirlo)

Suggerimento: È accettabile utilizzare true/false anziché 1 e 0.

Ritorno dei Campi Specificati

Imposta quali campi restituire tramite il secondo parametro della funzione find.

db.inventory.find( { stato: "A" }, { articolo: 1, stato: 1 } )

Spiegazione:

  • Vengono interrogati i documenti in cui lo stato soddisfa A.
  • Restituisce i campi _id, articolo e stato.

Suggerimento: Il campo _id viene restituito per impostazione predefinita.

SQL Equivalente:

SELECT articolo, stato from inventory WHERE status = "A"

Escludi Campi Specificati

db.inventory.find( { stato: "A" }, { stato: 0, disponibile: 0 } )

Spiegazione:

  • Vengono interrogati i documenti in cui lo stato soddisfa A.
  • Restituisce tutti i dati tranne i campi articolo e stato.

Ritorna Campi Specificati nei Documenti Anidati

db.inventory.find(
   { stato: "A" },
   { articolo: 1, stato: 1, "dimensioni.uom": 1 }
)

Spiegazione:

  • dimensioni.uom rappresenta il ritorno del campo uom sotto dimensioni.