$setDifference - Amazon DocumentDB

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

$setDifference

버전 4.0의 새 버전입니다.

Amazon DocumentDB의 $setDifference 연산자는 두 세트를 비교하고 첫 번째 세트에는 있지만 두 번째 세트에는 없는 요소를 반환하는 데 사용됩니다. 이 연산자는 두 세트 사이의 고유한 요소를 찾는 데 유용합니다.

파라미터

  • firstSet : 비교할 첫 번째 세트입니다.

  • secondSet : 비교할 두 번째 세트입니다.

예제(MongoDB 쉘)

다음 예제에서는 $setDifference 연산자를 사용하여 두 세트 간의 고유한 요소를 찾는 방법을 보여줍니다.

샘플 문서 생성

db.collection.insertMany([ { _id: 1, fruits: ["apple", "banana", "cherry", "date"] }, { _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] } ]);

쿼리 예제

db.collection.aggregate([ { $project: { uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] } } } ]);

출력

[ { "_id": 1, "uniqueFruits": ["apple"] }, { "_id": 2, "uniqueFruits": ["elderberry"] } ]

쿼리는 다음 단계를 수행합니다.

1. $project 스테이지를 사용하여 각 문서에 uniqueFruits 대한 새 필드를 생성합니다.

2. 연$setDifference산자는 fruits 배열을 배열과 비교["banana", "cherry", "date"]하고 fruits 배열의 고유 요소를 반환합니다.

코드 예제

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

Node.js

다음은 Node.js 애플리케이션에서 $setDifference 연산자를 사용하는 방법의 예입니다.

const { MongoClient } = require('mongodb'); async function main() { 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('mycollection'); // Insert sample documents await collection.insertMany([ { _id: 1, fruits: ["apple", "banana", "cherry", "date"] }, { _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] } ]); // Query using $setDifference const result = await collection.aggregate([ { $project: { uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] } } } ]).toArray(); console.log(result); await client.close(); } main();
Python

다음은 Python 애플리케이션에서 $setDifference 연산자를 사용하는 방법의 예입니다.

from pymongo import MongoClient def main(): 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['mycollection'] # Insert sample documents collection.insert_many([ {'_id': 1, 'fruits': ["apple", "banana", "cherry", "date"]}, {'_id': 2, 'fruits': ["banana", "cherry", "date", "elderberry"]} ]) # Query using $setDifference result = list(collection.aggregate([ { '$project': { 'uniqueFruits': {'$setDifference': ['$fruits', ["banana", "cherry", "date"]]} } } ])) print(result) client.close() if __name__ == '__main__': main()