$setUnion - Amazon DocumentDB

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

$setUnion

Operator $setUnion agregasi di Amazon DocumentDB digunakan untuk menggabungkan dua atau lebih set nilai dan mengembalikan satu set yang berisi semua elemen unik dari set input. Operator ini berguna ketika Anda perlu melakukan operasi berbasis set pada bidang array dalam dokumen Anda.

Parameter

  • expression1: Ekspresi yang menyelesaikan ke array.

  • expression2: Ekspresi yang menyelesaikan ke array.

  • expressionN: Ekspresi tambahan yang menyelesaikan array (opsional).

Contoh (MongoDB Shell)

Contoh berikut menunjukkan bagaimana menggunakan $setUnion operator untuk menggabungkan elemen unik dari dua bidang array dalam koleksi.

Buat dokumen sampel

db.users.insertMany([ { _id: 1, name: "Alice", hobbies: ["reading", "swimming"], skills: ["coding", "writing"] }, { _id: 2, name: "Bob", hobbies: ["cooking", "gardening"], skills: ["coding", "photography"] }, { _id: 3, name: "Charlie", hobbies: ["reading", "painting"], skills: ["gardening", "music"] } ]);

Contoh kueri

db.users.aggregate([ { $project: { name: 1, allInterests: { $setUnion: ["$hobbies", "$skills"] } } } ]);

Keluaran

[ { "_id" : 1, "name" : "Alice", "allInterests" : [ "coding", "reading", "swimming", "writing" ] }, { "_id" : 2, "name" : "Bob", "allInterests" : [ "coding", "cooking", "gardening", "photography" ] }, { "_id" : 3, "name" : "Charlie", "allInterests" : [ "gardening", "music", "painting", "reading" ] } ]

Dalam contoh ini, $setUnion operator digunakan untuk menggabungkan elemen unik dari bidang hobbies dan skills array untuk setiap dokumen pengguna. allInterestsBidang yang dihasilkan berisi penyatuan semua hobi dan keterampilan unik untuk setiap pengguna.

Contoh kode

Untuk melihat contoh kode untuk menggunakan $setUnion 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 users = db.collection('users'); const result = await users.aggregate([ { $project: { _id: 1, name: 1, allInterests: { $setUnion: ["$hobbies", "$skills"] } } } ]).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'] users = db['users'] result = list(users.aggregate([ { '$project': { '_id': 1, 'name': 1, 'allInterests': { '$setUnion': ["$hobbies", "$skills"] } } } ])) print(result) client.close() example()