$arrayToObject - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

$arrayToObject

Amazon DocumentDB의 $arrayToObject 연산자는 $objectToArray 연산자의 역순입니다. 키-값 페어 문서의 배열을 가져와서 단일 문서로 변환합니다. 이는 키-값 페어의 배열을 객체 또는 문서 구조로 다시 변환해야 할 때 특히 유용합니다.

파라미터

  • array expression: 배열로 확인되는 표현식입니다. 배열 요소는 (키)와 k (v값)의 두 필드가 있는 문서여야 합니다.

예제(MongoDB 쉘)

아래 예제에서는를 $arrayToObject 사용하여 키-값 페어 배열을 다시 문서로 변환하는 방법을 보여줍니다.

샘플 문서 생성

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 } } ]);

쿼리 예제

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

출력

{ "_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 } }

이 예제에서는 $objectToArray 연산자를 사용하여 inventory 객체를 키-값 페어의 배열로 변환합니다. 그런 다음 $arrayToObject 연산자를 사용하여 배열을 다시 문서로 변환하여 원래 객체 구조를 복원합니다.

코드 예제

$arrayToObject 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.

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