$project - Amazon DocumentDB

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.

$project

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“).

  • 1odertrue: Schließt das Feld in die Ausgabe ein.

  • 0oderfalse: Schließt das Feld von der Ausgabe aus.

Beispiel (MongoDB Shell)

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

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()