$unwind - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$unwind

$unwindOperator digunakan untuk mendekonstruksi bidang array dari dokumen input untuk output dokumen untuk setiap elemen. Ini dapat berguna ketika Anda ingin melakukan operasi pada elemen individual dari array, seperti memfilter, menyortir, atau mengubah data.

Parameter

  • path: Jalur ke bidang array yang akan dilepas.

  • includeArrayIndex: (opsional) Menentukan nama bidang baru untuk menahan indeks elemen array.

  • preserveNullAndEmptyArrays: (opsional) Menentukan apakah operasi menyimpan dokumen asli ketika bidang array adalah null atau array kosong.

Contoh (MongoDB Shell)

Contoh berikut menunjukkan bagaimana menggunakan $unwind operator untuk mendekonstruksi bidang array dan melakukan operasi lebih lanjut pada elemen individu.

Buat dokumen sampel

db.people.insertMany([ { _id: 1, name: "jon", hobbies: ["painting", "dancing", "singing"] }, { _id: 2, name: "jane", hobbies: ["reading", "swimming"] }, { _id: 3, name: "jack", hobbies: [] } ])

Contoh kueri

db.people.aggregate([ { $unwind: "$hobbies" } ])

Keluaran

[ { _id: 1, name: 'jon', hobbies: 'painting' }, { _id: 1, name: 'jon', hobbies: 'dancing' }, { _id: 1, name: 'jon', hobbies: 'singing' }, { _id: 2, name: 'jane', hobbies: 'reading' }, { _id: 2, name: 'jane', hobbies: 'swimming' } ]

Contoh kode

Untuk melihat contoh kode untuk menggunakan $unwind perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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('people'); const result = await collection.aggregate([ { $unwind: '$hobbies' } ]).toArray(); console.log(result); 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['people'] result = list(collection.aggregate([ { '$unwind': '$hobbies' } ])) print(result) client.close() example()