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

$arrayToObject

Der $arrayToObject Operator in Amazon DocumentDB ist das Gegenteil des $objectToArray Operators. Er nimmt ein Array von Dokumenten mit Schlüssel-Wert-Paaren und konvertiert es in ein einzelnes Dokument. Dies ist besonders nützlich, wenn Sie ein Array von Schlüssel-Wert-Paaren wieder in eine Objekt- oder Dokumentstruktur konvertieren müssen.

Parameter

  • array expression: Ein Ausdruck, der in ein Array aufgelöst wird. Die Array-Elemente müssen Dokumente mit zwei Feldern sein: k (der Schlüssel) und v (der Wert).

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie Sie $arrayToObject ein Array von Schlüssel-Wert-Paaren wieder in ein Dokument konvertieren können.

Erstellen Sie Beispieldokumente

db.videos.insertMany([ { "_id": 1, "name": "Live Soft", "inventory": { "Des Moines": 1000, "Ames": 500 } }, { "_id": 2, "name": "Top Pilot", "inventory": { "Mason City": 250, "Des Moines": 1000 } }, { "_id": 3, "name": "Romancing the Rock", "inventory": { "Mason City": 250, "Ames": 500 } }, { "_id": 4, "name": "Bravemind", "inventory": { "Mason City": 250, "Des Moines": 1000, "Ames": 500 } } ]);

Beispiel für eine Abfrage

db.videos.aggregate([ { $project: { name: 1, videos: { $objectToArray: "$inventory" } } }, { $project: { name: 1, inventory: { $arrayToObject: "$videos" } } } ]);

Ausgabe

{ "_id" : 1, "name" : "Live Soft", "inventory" : { "Des Moines" : 1000, "Ames" : 500 } } { "_id" : 2, "name" : "Top Pilot", "inventory" : { "Mason City" : 250, "Des Moines" : 1000 } } { "_id" : 3, "name" : "Romancing the Rock", "inventory" : { "Mason City" : 250, "Ames" : 500 } } { "_id" : 4, "name" : "Bravemind", "inventory" : { "Mason City" : 250, "Des Moines" : 1000, "Ames" : 500 } }

In diesem Beispiel wird der $objectToArray Operator verwendet, um das inventory Objekt in ein Array von Schlüssel-Wert-Paaren umzuwandeln. Der $arrayToObject Operator wird dann verwendet, um das Array wieder in ein Dokument zu konvertieren, wodurch die ursprüngliche Objektstruktur wiederhergestellt wird.

Codebeispiele

Um ein Codebeispiel für die Verwendung des $arrayToObject 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('videos'); const result = await collection.aggregate([ { $project: { name: 1, videos: { $objectToArray: '$inventory' } } }, { $project: { name: 1, inventory: { $arrayToObject: '$videos' } } } ]).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['videos'] result = list(collection.aggregate([ { '$project': { 'name': 1, 'videos': { '$objectToArray': '$inventory' } } }, { '$project': { 'name': 1, 'inventory': { '$arrayToObject': '$videos' } } } ])) print(result) client.close() example()