$addFields - 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.

$addFields

Die $addFields Phase in der Amazon DocumentDB-Aggregationspipeline ermöglicht es Ihnen, neue berechnete Felder zu Dokumenten hinzuzufügen. Dies kann nützlich sein, um den Dokumenten abgeleitete oder transformierte Daten hinzuzufügen.

Parameter

  • newField: Der Name des neuen Feldes, das hinzugefügt werden soll.

  • expression: Ein Ausdruck, der den Wert des neuen Felds ergibt.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie Sie ein neues Feld $addFields hinzufügenTotalInventory, das den Gesamtbestand auf der Grundlage der Felder Inventory.OnHand und Inventory.OrderQnty berechnet.

Erstellen Sie Beispieldokumente

db.example.insertMany([ { "Item": "Spray Paint", "Colors": ["Black", "Red", "Green", "Blue"], "Inventory": { "OnHand": 47, "MinOnHand": 50, "OrderQnty": 36 }, "UnitPrice": 3.99 }, { "Item": "Ruler", "Colors": ["Red", "Green", "Blue", "Clear", "Yellow"], "Inventory": { "OnHand": 47, "MinOnHand": 40 }, "UnitPrice": 0.89 } ]);

Beispiel für eine Abfrage

db.example.aggregate([ { $addFields: { TotalInventory: { $add: ["$Inventory.OnHand", "$Inventory.OrderQnty"] } } } ])

Ausgabe

[ { "_id" : ObjectId("5bedafbcf65ff161707de24f"), "Item" : "Ruler", "Colors" : [ "Red", "Green", "Blue", "Clear", "Yellow" ], "Inventory" : { "OnHand" : 47, "MinOnHand" : 40 }, "UnitPrice" : 0.89, "TotalInventory" : 47 }, { "_id" : ObjectId("5bedafbcf65ff161707de250"), "Item" : "Spray Paint", "Colors" : [ "Black", "Red", "Green", "Blue" ], "Inventory" : { "OnHand" : 47, "MinOnHand" : 50, "OrderQnty" : 36 }, "UnitPrice" : 3.99, "TotalInventory" : 83 } ]

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); 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('example'); const result = await collection.aggregate([ { $addFields: { TotalInventory: { $add: ['$Inventory.OnHand', '$Inventory.OrderQnty'] } } } ]).toArray(); console.log(result); await client.close();
Python
from pymongo import MongoClient 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['example'] result = list(collection.aggregate([ { '$addFields': { 'TotalInventory': { '$add': ['$Inventory.OnHand', '$Inventory.OrderQnty'] } } } ])) print(result) client.close()