Kapitelübersicht

In diesem Kapitel wird erläutert, wie Sie in MongoDB-Abfragen die Rückgabe bestimmter Felder einstellen können, anstatt alle Felddaten zurückzugeben.

Testdaten

Fügen Sie einige Datensätze in die Bestandskollektion ein

db.inventory.insertMany( [
  { item: "Journal", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
  { item: "Notizbuch", status: "A",  size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
  { item: "Papier", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
  { item: "Planer", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
  { item: "Postkarte", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

Format

{<Feld>: 1 oder 0}

Erklärung:

  • - Feldeingabe
  • 1 steht für die Rückgabe des Feldes, 0 steht für das Ausschließen des Feldes (d.h. Nicht-Rückgabe)

Tipp: Die Verwendung von true/false anstelle von 1 und 0 ist ebenfalls akzeptabel.

Bestimmte Felder zurückgeben

Legen Sie fest, welche Felder über den zweiten Parameter der find-Funktion zurückgegeben werden sollen.

db.inventory.find( { status: "A" }, { item: 1, status: 1 } )

Erklärung:

  • Abfrage von Dokumenten, bei denen der Status A erfüllt.
  • Gibt die _id-, item- und status-Felder zurück.

Tipp: Das _id-Feld wird standardmäßig zurückgegeben.

Äquivalentes SQL:

SELECT item, status FROM inventory WHERE status = "A"

Bestimmte Felder ausschließen

db.inventory.find( { status: "A" }, { status: 0, instock: 0 } )

Erklärung:

  • Abfrage von Dokumenten, bei denen der Status A erfüllt.
  • Gibt alle Daten zurück, außer den item- und status-Feldern.

Rückgabe bestimmter Felder in verschachtelten Dokumenten

db.inventory.find(
   { status: "A" },
   { item: 1, status: 1, "size.uom": 1 }
)

Erklärung:

  • size.uom stellt die Rückgabe des uom-Feldes unter size dar.