

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# \$1project
<a name="project"></a>

Mit dem `$project` Operator in Amazon DocumentDB können Sie Felder selektiv in Ausgabedokumente ein- oder ausschließen, Werte an die nächste Pipeline-Phase übergeben und neue Felder aus Eingabedokumentwerten berechnen.

**Parameter**
+ `field`: Das Feld, das in die Ausgabedokumente ein- oder ausgeschlossen werden soll. Dabei kann es sich um einen Feldpfad handeln (z. B. „a.b.c“).
+ `1`oder`true`: Schließt das Feld in die Ausgabe ein.
+ `0`oder`false`: Schließt das Feld von der Ausgabe aus.

## Beispiel (MongoDB Shell)
<a name="project-examples"></a>

Das folgende Beispiel demonstriert die Verwendung des `$project` Operators bei der Erfassung von Studenten

**Erstellen Sie Beispieldokumente**

```
db.students.insertMany([
  { "_id": 1, "name": "Alejandro Rosalez", "math": 85, "science": 92, "grade": "A" },
  { "_id": 2, "name": "Carlos Salazar", "math": 78, "science": 84, "grade": "B" },
  { "_id": 3, "name": "Nikhil Jayashankar", "math": 95, "science": 89, "grade": "A" },
  { "_id": 4, "name": "Shirley Rodriguez", "math": 72, "science": 76, "grade": "B" }
  ]);
```

Diese Abfrage umfasst nur die `math` Felder `name` und in der Ausgabe. Das `_id` Feld ist standardmäßig enthalten, sofern es nicht ausdrücklich ausgeschlossen ist.

```
db.students.aggregate([
  { $project: { "name": 1, "math": 1 } }
])
```

**Ausgabe**

```
{ _id: 1, name: "Alejandro Rosalez", math: 85 }
{ _id: 2, name: "Carlos Salazar", math: 78 }
{ _id: 3, name: "Nikhil Jayashankar", math: 95 }
{ _id: 4, name: "Shirley Rodriguez", math: 72 }
```

Diese Abfrage schließt die `_id` Felder `grade` und aus der Ausgabe aus und zeigt alle anderen Felder (`name`,`math`,`science`) an.

```
db.students.aggregate([
  { $project: { "grade": 0, "_id": 0 } }
])
```

**Ausgabe**

```
{ name: "Alejandro Rosalez", math: 85, science: 92 }
{ name: "Carlos Salazar", math: 78, science: 84 }
{ name: "Nikhil Jayashankar", math: 95, science: 89 }
{ name: "Shirley Rodriguez", math: 72, science: 76 }
```

## Codebeispiele
<a name="project-code"></a>

Um ein Codebeispiel für die Verwendung des `$project` Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const collection = db.collection('students');

  const result = await collection.aggregate([
    { $project: { "name": 1, "math": 1 } }
  ]).toArray();
  console.log(result);

  await client.close();
}

example();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def example():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    collection = db['students']

    result = list(collection.aggregate([
        { '$project': { 'name': 1, 'math': 1 } }
    ]))
    print(result)

    client.close()

example()
```

------